似乎沒有用於指定this()和base()構造函數的語言語法。給定以下代碼: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; }
}
編譯器給了我一個錯誤,指出取消註釋this(0)時需要注意'{'。這很麻煩,因爲這會導致我將我的代碼分解爲私有方法,當這種功能被明確提供以防止出現這種情況時。
我只是做了這個錯誤?我試過沒有分隔符,分號,逗號......似乎這只是開發團隊的疏忽而已。我感興趣的是爲什麼這個被省略,如果我以錯誤的方式去解決這個問題,或者如果有人對替代方案有很好的建議。
[在C#中調用Overriden構造函數和基構造函數]可能的副本(http://stackoverflow.com/questions/335286/calling-overriden-constructor-and-base-constructor-in-c) – Oded 2011-01-31 19:16:58
謝謝大家的答案。本質上,問題是this()也可能調用另一個基構造器。 – Sprague 2011-01-31 19:35:49