this()コンストラクタとbase()コンストラクタの両方を指定する言語構文はないようです。次のコードを考える:この(0)の呼び出し:C#の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; }
}
コンパイラは私にコメント解除したときに「{」が期待されたことを示すエラーが発生します。これは、この機能が明らかにそのようなことを防ぐために提供されたとき、プライベートメソッドに私のコードを取り除く原因となるので、迷惑です。
私は単にこれを間違っていますか?私は区切り文字、セミコロン、カンマを使用しようとしなかった...これは開発チームの監視に過ぎないようだ。私はこれを間違った方法でやっている場合や、誰かが代替案を提案している場合、これがなぜ省略されたのかに興味があります。
[C#でオーバーライドされたコンストラクタとベースコンストラクタを呼び出す可能性があります](http://stackoverflow.com/questions/335286/calling-overriden-constructor-and-base-constructor-in-c) – Oded
ありがとう答えの基本的には、this()が別の基本コンストラクタを呼び出す可能性があるという問題があります。 – Sprague