[英]How to check if a class instance has been created or is null C#
How do you check if classinstance
has been created/initialised or is null
? 如何检查
classinstance
是否已创建/初始化或为null
?
private MyClass myclass;
if(!check class has been initialised) //<- What would that check be?
myclass = new MyClass();
Thanks in advance 提前致谢
Just check if it is null 只需检查它是否为空
if (myclass == null)
As mentioned in your comment, 正如你的评论所述,
if (myclass.Equals(null))
will not work because if myclass is null, that's translated to 将无效,因为如果myclass为null,则转换为
if (null.Equals(null))
which leads to a NullReferenceException
. 这会导致
NullReferenceException
。
By the way, objects declared in class scope are automatically initialized to null by the compiler, so your line: 顺便说一下,类范围中声明的对象会被编译器自动初始化为null,所以你的行:
private MyClass myclass;
is the same as 是相同的
private MyClass myclass = null;
Objects declared in a method are forced to be assigned some initial value (even if that initial value is null). 在方法中声明的对象被强制分配一些初始值(即使该初始值为null)。
if (myclass == null)
myclass = new MyClass();
如果您希望将类限制为单个实例,请查看Singleton设计模式: http : //msdn.microsoft.com/en-us/library/ff650316.aspx
you can use this constructions for avoid checking 你可以使用这个结构来避免检查
public class SomeClass
{
private MyClass _myClass;
public MyClass MyClass
{
get { return _myClass ?? (_myClass = new MyClass()); }
set { _myClass = value; }
}
}
public class SomeClass
{
private readonly MyClass _myClass = new MyClass();
public MyClass MyClass
{
get { return _myClass; }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.