似乎没有指定 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) 调用时需要“{”。这很麻烦,因为当明确提供此功能以防止此类事情发生时,它会导致我将我的代码分解为私有方法。
我只是做错了吗?我试过没有分隔符,分号,逗号......这似乎只是开发团队的疏忽。我对为什么省略这个很感兴趣,如果我以错误的方式处理这个问题,或者是否有人对替代方案有很好的建议。