据我所知,当我在struct中使用自动实现的属性时,我应该显式地链接无参数构造函数(即,必须先调用无参数构造函数,然后才能分配自动实现的属性)。现在,我有以下代码可以正常工作,而无需链接: this()
public struct Foo
{
public int Value { get; private set; }
public Foo(int value) //: this()
{
Value = value;
}
}
static void Main(string[] args)
{
Foo f = new Foo(33);
Console.WriteLine(f.Value);
}
我发现了类似的帖子here,其中用户遇到编译器错误,建议使用: this()
来解决问题。为什么我的代码在没有: this()
的情况下可以工作?我们应该使用还是不使用: this()
?
谢谢