この Java コード (Message と呼ばれるクラス) には本当に困惑しています。2 番目のコンストラクターはdata_length
値で初期化するように設定されていると思います。この目的のために、ご覧のように名前が付けられたメソッドを呼び出しinit
ます。
しかし、内部init
で何が起こっているのかというと、机に頭をぶつけてしまいます :D このメソッドの内部では何が起こっているのでしょうか? なぜそれは自分自身を呼んでいるのですか??
/**
* The actual length of the message data. Must be less than or equal to
* (data.length - base_offset).
*/
protected int data_length;
/** Limit no-arg instantiation. */
protected Message() {
}
/**
* Construct a new message of the given size.
*
* @param data_length
* The size of the message to create.
*/
public Message(int data_length) {
init(data_length);
}
public void init(int data_length) {
init(new byte[data_length]);
}
このコードを C# に変換しています。
public class Message
{
//blah blah and more blah
private int _dataLength;
public Message(int dataLength)
{
_dataLength = dataLength;
}
}