在C#中什么都不做关键字?

时间:2012-10-18 14:31:58

标签: c#

C#中是否有“无所事事”的关键字?

例如,我想使用三元运算符,其中一个操作是不采取任何操作:

officeDict.ContainsKey("0") ? DO NOTHING : officeDict.Add("0","")

10 个答案:

答案 0 :(得分:40)

不,没有这样的关键字。此外,?:运算符不用于决定操作。它用于决定(或者,更具技术性,值表达式)。

你真的,真的想用if条件来代替这种决策:

if (!officeDict.ContainsKey("0"))
    officeDict.Add("0", "");

答案 1 :(得分:18)

正如其他人所指出的,使用if声明在这里更为惯用。

但要回答你的问题,你可以使用lambdas和delegates:

// Bad code, do not use:
(officeDict.ContainsKey("0") ? (Action)(() => { }) : () => officeDict.Add("0", ""))();

答案 2 :(得分:6)

撇开这个坏主意的事实,你实际上可以创建一个'DoNothing'方法,使用一个属性来有条件地发出方法调用(注意这取决于你没有#define'从来没有'的约定条件。)由于ConditionalAttribute,不会发出对方法的调用,并且你基本上有一个'nop'代码段。

       [Conditional("NEVER")] 
       public void DoNothing() 
       { 
       } 

不过,正如其他几位已经指出的那样,不建议这样做。

答案 3 :(得分:5)

如果您只想在其中一个案例中执行某些操作,为什么要使用三元运算符? 为什么不反转条件并使用if语句?

if (!officeDict.ContainsKey("0"))
{
    officeDict.Add("0","")
}

答案 4 :(得分:3)

为什么不使用if语句,所以代码如下所示:

if(!officeDict.ContainsKey("0"))
    officeDict.Add("0","")

答案 5 :(得分:2)

三元运算符用于表达式,而不是语句。

您需要if声明。

答案 6 :(得分:2)

为什么不用简单的if来编写它?

if (!officeDict.ContainsKey("0"))
    officeDict.Add("0","")

它将更具可读性。

答案 7 :(得分:2)

为什么不直接使用IF语句?

if(!officeDict.ContainsKey("0")) officeDict.Add("0","");

答案 8 :(得分:2)

改为使用if语句。

if (!officeDict.ContainsKey("0")) 
{
    officeDict.Add("0","")
}

答案 9 :(得分:-3)

试试这个(grinns)

    if (officeDict.ContainsKey("0")) 
       Thread.Sleep(1) 
   else
       officeDict.Add("0","")