在C#中不做任何关键字?

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

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

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

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

你真的,真的想使用if条件进行这种决策:

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

正如其他人所指出的那样,使用if语句在这里更为惯用。

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

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

撇开这是一个坏主意的事实,你实际上可以创建一个’DoNothing’方法使用一个属性来有条件地发出方法调用(注意这取决于你没有#define’永远’条件的约定。)由于ConditionalAttribute,不会发出对该方法的调用,并且您实际上有一个代码的“nop”部分。

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

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

如果你只想在其中一个案例中做某事,你为什么要使用三元运算符? 为什么不反转条件并使用if语句?

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

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

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

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

你想要一个if语句。

为什么不用简单的if写呢?

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

它将更具可读性。

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

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

请改用if语句。

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

试试这个(grinns)

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