Spr*_*gue 7 .net multiple-constructors
似乎没有用于指定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; }
}
Run Code Online (Sandbox Code Playgroud)
编译器给出了一个错误,指出在取消注释:this(0)调用时预期'{'.这很麻烦,因为它导致我将我的代码分解为私有方法,当明确提供此功能以防止这样的事情.
我只是做错了吗?我试过没有分隔符,分号,逗号......这似乎只是开发团队的疏忽.我很感兴趣为什么这个被省略了,如果我以错误的方式解决这个问题,或者是否有人对替代方案提出了很好的建议.
您可以通过在链的末尾调用基础构造函数来完成此操作:
public Bar(): this(0) {}
public Bar(int schmalue): base(1) {
// ... initialize
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1639 次 |
| 最近记录: |