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