C#代码允许有趣的语法,void方法也允许返回
嗨,昨天我一直在发一个问题:比如c#allow;() 找到了答案: 但今天我看到了另一个有趣的(臭虫) 见下图 为什么VisualStudio允许这样做?代码构建成功。为什么要建造 还有一个有趣的代码总是在运行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方法不会返回。但为什么没有显示任何错误?我没有为“”分
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#语法的完全有效元素,但它们与变量无关,在本例中,它们在方法中不起任何作用。