[英]Best method of initialising Auto-Implemented Properties with null in c#?
我想使用简单的公共属性并将其转变为匿名访问器,但是我的某些逻辑要求accessors / properties的初始值为null
,如果我未分配匿名访问器,我是否可以依靠匿名访问器为null呢?值?
目前 :
public string XML = null; // set XML or XMLPath to turn on XML stuff
public string XMLPath = null;
相比 :
public string XML {get; set;}
public string XMLPath {get; set;}
您什么都不需要做。 默认情况下为null
。 对于字段也是如此。 实际上,自动属性也使用一个字段,这就是为什么自动属性的默认值是null
(或更精确地说是default(T)
)的原因。
未分配的自动实现属性定义为以其类型的默认值开头。 因此,引用类型以null
开头。
新类字段始终使用null初始化(简单类型除外,这些简单类型使用默认值初始化,例如0表示整数)。 您无需为他们分配空值。 这也都适用于匿名对象中的自动实现的属性和字段。
只有方法变量没有被初始化,但是对于它们,如果您尝试在不首先对其进行初始化的情况下尝试读取它们,则首先会出现编译器错误,因此您也不必为此担心。
结论:C#始终关心在编译时不要访问未初始化的变量,没有机会访问在运行时未分配默认值的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.