確定對象引用變量是否爲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