有没有办法在不使用构造函数的情况下初始化虚拟自动属性? 或者我应该创建一个私人领域?
答案 0 :(得分:7)
虚拟与否,你需要一个构造函数。或者它的类型将具有默认值。
因为在构造函数中调用虚拟成员是不好的
正确,你必须小心翼翼。正常规则确实适用。为了安全起见,您将设计您的属性,以便它不需要初始化或仅在派生的构造函数中初始化它,其中类或属性被密封。
答案 1 :(得分:3)
请注意,很多情况下自动属性几乎没有意义。
对于虚拟自动属性,我会说初始化部分会导致这个问题,并会删除“自动”部分并创建一个支持字段。
当然,由于在构造函数之前调用了基本构造函数,如果基础构造函数将属性初始化为错误的值,则后代构造函数有可能在构造对象之前纠正该构造函数。