13

确定对象引用变量是否为 的最佳方法是null什么?

是以下吗?

MyObject myObjVar = null;
if (myObjVar == null)
{
    // do stuff
}
4

5 回答 5

10

是的,你是对的,如果你想执行任意代码,下面的代码片段是要走的路:

MyObject myObjVar; 
if (myObjVar == null) 
{ 
    // do stuff 
} 

顺便说一句:你的代码不会像现在这样编译,因为myObjVar在它被初始化之前就被访问了。

于 2012-08-17T05:29:10.330 回答
8

您可以使用 Object.ReferenceEquals

if (Object.ReferenceEquals(null, myObjVar)) 
{
   ....... 
} 

如果 myObjVar 为空,这将返回 true。

于 2012-08-17T05:45:38.657 回答
7

你正在做的方式是最好的方式

if (myObjVar == null)
{
    // do stuff
}

但是您可以使用空合并运算符 ??进行检查以及分配某些内容

var obj  = myObjVar ?? new MyObject();
于 2012-08-17T05:29:58.333 回答
3

你可以:

MyObject myObjVar = MethodThatMayOrMayNotReturnNull();
if (if (Object.ReferenceEquals(null, myObjVar)) 
{
    // do stuff
}
于 2012-08-17T05:34:01.200 回答
0

C# 7.0你可以使用is null

MyObject myObjVar = null;
if (myObjVar is null)
{
    // do stuff
}
于 2021-07-14T20:25:59.497 回答