确定对象引用变量是否为null
的最佳方法是什么?如何确定对象引用是否为空?
下面是它吗?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
确定对象引用变量是否为null
的最佳方法是什么?如何确定对象引用是否为空?
下面是它吗?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
是的,你是对的,下面的片段是去,如果你想执行任意代码的方式:
MyObject myObjVar;
if (myObjVar == null)
{
// do stuff
}
顺便说一句:您的代码将无法编译,现在是这样的,因为myObjVar
在被初始化之前被访问。
@DanielHilgarth,绝对正确,只是测试它,它不应该编译 – Habib 2012-08-17 05:36:22
你正在做的方式是最好的方式
if (myObjVar == null)
{
// do stuff
}
但你可以使用null-coalescing operator??
检查,以及分配的东西
var obj = myObjVar ?? new MyObject();
我认为null-coalescing运算符是在C#2中引入的 – TheEvilPenguin 2012-08-17 05:32:14
@TheEvilPenguin,你说得对,修改我的答案 – Habib 2012-08-17 05:37:24
,您可以:
MyObject myObjVar = MethodThatMayOrMayNotReturnNull();
if (if (Object.ReferenceEquals(null, myObjVar))
{
// do stuff
}
为什么需要两个if语句? – 2016-02-02 13:09:06
您可以使用Object。 ReferenceEquals
if (Object.ReferenceEquals(null, myObjVar))
{
.......
}
如果myObjVar为null,则返回true。
如果您想覆盖对象的==运算符,这很有用。 – mac10688 2015-10-22 14:51:16
而不是什么? – 2012-08-17 05:28:57
@MichaelPetrotta:这就是我问这个问题的原因吗?有没有更好的选择? – CJ7 2012-08-17 05:29:39
如果你想默认的东西,你总是可以做'MyObject obj = myObjVar ?? DefaultObjVar' – 2012-08-17 05:30:35