0
是否可以編寫自己的條件語句或重載當前語句?如何創建自定義語句
是我真正想要做的是
object obj = null;
if(obj) // or something like if(1==1 || obj && obj.Value)
// do something
else
// do someotherstuff
是否可以編寫自己的條件語句或重載當前語句?如何創建自定義語句
是我真正想要做的是
object obj = null;
if(obj) // or something like if(1==1 || obj && obj.Value)
// do something
else
// do someotherstuff
不完全是,但對於你提到的具體情況,你可以重載如何在特定的類的實例計算爲true
/false
:
// returns true if the object evaluates to true
public static bool operator true(YourClass x)
{
return x != null;
}
// returns true if the object evaluates to false
public static bool operator false(YourClass x)
{
return x == null;
}
這樣的話,你可以這樣做:
YourClass x = new YourClass();
if (x) // same as "if (x != null)" (defined in operator true)
// do something
else if (!x) // same as "if (x == null)" (defined in operator false)
// do someotherstuff
+1爲您很好的解決方案,但遺憾的是沒有回答我的問題,如果有一種方法或許沒有辦法創建一個自定義聲明 – WiiMaxx 2013-03-27 15:08:07
@WiiMaxx我的意思是「不算什麼確切地說「是你不能重載諸如」if「,」else「之類的條件語句或者創建新的條件語句。您只能重載操作符,如'||'或'&&'。你想重新定義「如果」做什麼? – Botz3000 2013-03-27 15:36:34
如果僅僅是一個例子,這個問題背後沒有實際的需求。我在一些論壇上看到有人問這個問題,但其中一個人得到了答案,有時候寫'if(value!= null)'也很緊張,所以我認爲這將是一個很好的例子。 – WiiMaxx 2013-03-28 07:43:10