0

我想采用简单的公共属性并将它们转换为匿名访问器,但是我的一些逻辑要求访问器/属性的初始值是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;}
4

3 回答 3

2

你不需要做任何事情。它们是null默认的。对于字段也是如此。实际上,自动属性也使用字段,这就是自动属性的默认值是null(或default(T)更准确地说)的原因。

于 2013-05-16T08:59:52.830 回答
2

未分配的自动实现的属性被定义为以其类型的默认值开始。所以引用类型开始null

于 2013-05-16T09:01:20.933 回答
1

新的类字段总是用空值初始化(除了用它们默认值初始化的简单类型,比如 0 表示整数)。您不需要将 null 分配给它们。这也适用于匿名对象中自动实现的属性和字段。

只有方法变量没有初始化,但是对于它们,如果你在没有初始化它们的情况下尝试读取它们,你会首先得到编译器错误,所以你也不必担心。

结论:C#总是关心不在编译时访问未初始化的变量,你不可能访问在运行时没有分配默认值的变量。

于 2013-05-16T08:59:54.333 回答