gpt4 book ai didi

c# - 空分号和开闭花括号有效

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:50 24 4
gpt4 key购买 nike

我有分配给我的控制台应用程序项目支持,所以我决定在某个类中进行代码审查,当我进行代码审查时,我运行到某行只包含一个分号,而另一行是空的开闭花括号,所以我预计编译器会抛出错误,所以我尝试运行控制台应用程序但它工作正常并且没有错误迹象,我认为我的编译器有问题所以我决定重新安装它,但是控制台应用程序仍然运行良好,所以我决定创建一个新方法来测试分号和花括号我还尝试制作一个嵌套的花括号并在其中使用它及其令人惊讶的工作。谁能解释为什么会这样,或者只是我和我的编译器?

static void TestMethod()
{
;
{ }
; { }
{ ; }
{ };
{
{
{
{
{
{
{
Console.WriteLine("Hello, World!");
Console.Read();
}
}
}
}
}
}
}
}

最佳答案

Empty statements are allowed in C#.

An empty statement is used when there are no operations to perform in a context where a statement is required.

Execution of an empty statement simply transfers control to the end point of the statement. Thus, the end point of an empty statement is reachable if the empty statement is reachable.

另请注意 the definition of a block . block 内的语句是可选的。

A block consists of an optional statement-list (Section 8.2.1), enclosed in braces. If the statement list is omitted, the block is said to be empty.

另见 comments about this "feature" from Eric Lippert . (正如@Kobi 在上面的评论中提到的那样。)

注意:人们经常引用诸如这段代码的例子作为空语句的理由:

while (readNextChar() == ' ') // Skip spaces
;

或者可怕的:

while (readNextChar() == ' '); // Skip spaces

但就我个人而言,如果必须将其写成:

while (readNextChar() == ' ')
{
// Skip spaces
}

但是,这确实说明了您可能需要空 block 的原因(我对此没有意见)。

关于c# - 空分号和开闭花括号有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com