类似于Python中的Pass语句,在C#中该如何实现?

48

In python we can ...

a = 5
if a == 5:
    pass #Do Nothing
else:
    print "Hello World"

在C#中有类似的方法吗?

8个回答

48
使用空括号。
int a = 5;
if (a == 5) {}
else {
  Console.Write("Hello World");
}

1
这个解决方案不是最优的,因为你无法在大括号“内部”设置断点。 - cic
1
@cic 你可以在闭合括号所在的行上设置断点(如果它在单行上,则可以在开放括号所在的行上设置断点),这两个语义上都完全对应于“在”括号内部。 - Johannes Riecken

15

如果您不想使用空块,请使用

;

那么代码应该看起来像这样:

int a = 5;
if (a == 5)
  ;
else 
{
  Console.Write("Hello World");
}

虽然如此,代码可读性仍然受到影响。


13
为什么不直接说:
if (a != 5) 
{
   Console.Write("Hello World");
}

这也是我建议的方式。 - Josh P
14
是的,除了这个回答并没有解答问题。 - theonlygusti

12

空块:

{}

6

pass 在循环语境中使用吗? 如果是这样,请使用 continue 语句:

for (var i = 0; i < 10; ++i)
{
    if (i == 5)
    {
        continue;
    }

    Console.WriteLine("Hello World");
}

3
在Python中,“pass”和“continue”不是相同的概念,因此在C#中不能仅仅用“continue”表示“什么也不做”,即“{}”。 - martijnn2008

5
要么按照其他答案建议使用一个空块,要么反转条件:
if (a != 5)
{
    Console.WriteLine("Hello world");
}

或者更机械地说:
if (!(a == 5))
{
    Console.WriteLine("Hello world");
}

4

为什么要简单地做事,当你可以不必要地把它搞得更加复杂呢?

((Action) (() => { }))();

说实话,C#中与Python的pass语句相当的语句是

;

因为这是一行没有作用的代码。然而

{}

如果您采用的是另一种方式来实现相同的结果,那么您实际上会创建一个不包含任何代码行的作用域。


3
更好的问题是为什么你想要做这样的事情。如果你没有计划做任何事情,那就把它留空。
int a = 5;
if (a != 5) {
    Console.Write("Hello World");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接