【发布时间】:2017-01-27 16:13:00
【问题描述】:
我试图了解将 null 分配给类的实例与仅声明该类之间是否有任何区别。
例如,我有一个类:
public class MyClass
{
public string FirstProperty { get; set; }
public int SecondProperty { get; set; }
}
我声明了该类的两个实例:
MyClass Instance1 = null;
MyClass Instance2; // just declaration
Instance1 和 Instance2 有什么区别吗?
如果是,它安全吗?使用 'delcaration only' 样式是否是一个好习惯(就像上面示例中的 Instance2 一样)?
【问题讨论】:
-
前者是一个用
null初始化的变量,后者是一个没有显式初始化的变量,所以默认值也为null。区别在于:可读性,大家都知道 null 是期望的和期望的。如果你有一个out参数,编译器会强制你分配一些东西,即使它是null。 -
例如,Resharper 会建议在这种情况下删除
null分配。 -
是的,有区别。在第二种情况下,如果该值是一个字段,它将自动分配默认值,但如果它是一个局部变量,则不会。如果然后被代码“读取”,这会导致编译器错误“使用未分配的局部变量”
-
很多时候我只在某人的代码中看到了一个实例的声明。试图了解这样做是否正确。感谢 cmets 伙计们。
-
感谢大家的回答。你所有的答案都有很大帮助。
标签: c# null declaration