繁体   English   中英

在C#中使用null初始化自动实现属性的最佳方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM