C#代码允许有趣的语法,void方法也允许返回

C#代码允许有趣的语法,void方法也允许返回,c#,visual-studio,syntax,return,C#,Visual Studio,Syntax,Return,嗨,昨天我一直在发一个问题:比如c#allow;() 找到了答案: 但今天我看到了另一个有趣的(臭虫) 见下图 为什么VisualStudio允许这样做?代码构建成功。为什么要建造 还有一个有趣的代码总是在运行 private void install() { http://www.stackoverflow.com return; } 编辑: 看到上面的方法是void方法,我知道void方法不会返回。但为什么没有显示任何错误?我没有为“”分

嗨,昨天我一直在发一个问题:比如c#allow;()

找到了答案:

但今天我看到了另一个有趣的(臭虫)

见下图

为什么VisualStudio允许这样做?代码构建成功。为什么要建造

还有一个有趣的代码总是在运行

private void install()
    {
        http://www.stackoverflow.com
        return;
    }
编辑

看到上面的方法是void方法,我知道void方法不会返回。但为什么没有显示任何错误?我没有为“”分配任何变量,但为什么它没有给我一个错误


该方法之所以生成,是因为它是完全有效的C#

那些是标签。它们是C++继承的C/C++结构的一部分,允许执行跳转到方法内的特定点。一般不鼓励使用它

带标签的语句允许语句以标签作为前缀。标记语句允许在块中使用,但不允许作为嵌入语句使用

标记语句:

  标识符:语句

标记语句用标识符给定的名称声明标签。标签的范围是声明标签的整个块,包括任何嵌套块。两个同名标签的作用域重叠是编译时错误

进一步阅读


关于最新问题。请注意,
return
语句中没有提供任何值。在
void
方法中以这种方式使用
return
是非常有效的。这只会导致执行停止,并将控制权转移回调用方。事实上,您可以认为每个方法的末尾都有一个隐式return语句,以便将控制返回给调用方

如果试图返回特定值,则将是一个错误:

return 0; 
产生错误:

由于“MyPage.Page_Load”返回void,因此return关键字后面不能跟有对象表达式


为什么第二个乐趣是成功构建?是的,这很好,但我没有为“为什么不给我一个error@RameshRajendran函数中根本没有变量
http:
是一个标签
//stackoverflow.com
是一个注释。这两个元素都是C#语法的完全有效元素,但它们与变量无关,在本例中,它们在方法中不起任何作用。