this()コンストラクターとbase()コンストラクターの両方を指定するための言語構文はないようです。次のコードが与えられます:
public class Bar : Foo
{
public Bar()
:base(1)
//:this(0)
{ }
public Bar(int schmalue)
:Foo(1)
{
//Gobs of initialization code
...
Schmalue = schmalue;
}
public int Schmalue { get; private set; }
}
public class Foo
{
public Foo()
{
Value = 0;
}
public class Foo(int value)
{
Value = value;
}
public int Value { get; private set; }
}
コンパイラーは、:this(0)呼び出しのコメントを解除するときに、「{」が予期されていたことを示すエラーを表示します。このようなことを防ぐためにこの機能が明確に提供されている場合、コードをプライベートメソッドに分解するので、これは面倒です。
私は単にこれを間違っているのですか?区切り文字、セミコロン、コンマを試していません...これは開発チームからの見落としだったようです。なぜこれが省略されたのか、私がこれを間違った方法で行っているのか、誰かが代替案について良い提案をしているのか、私は興味があります。