gpt4 book ai didi

c# - 为什么 C# 不允许我调用 void 方法作为返回语句的一部分?

转载 作者:IT王子 更新时间:2023-10-29 04:00:50 25 4
gpt4 key购买 nike

我很好奇,当调用方法的返回类型也是 void 时,C# 不支持调用 void 方法作为 return 语句的一部分是否有正当理由。

public void MethodA() 
{
return;
}

public void MethodB()
{
return MethodA();
}

所以我们通常会看到这个:

public void MethodMeh() 
{
if (expression)
{
MethodA();
return;
}

// Do more stuff
}

...当我们可以使用它时:

public void MethodAwesome() 
{
if (expression)
return MethodA();

// Do more stuff
}

这是由于 C# 处理 void 的方式造成的语言限制吗?

最佳答案

因为这很简单the language is defined .

A method can use return statements to return control to its caller. In a method returning void, return statements cannot specify an expression. In a method returning non-void, return statements must include an expression that computes the return value.

这是一个武断的决定(大概是为了与 ANSI C 及其其他后代兼容),其他语言的做法不同。

例如,在 Python 中,所有函数都有返回值。如果您执行一个没有值的 return 语句,或者让控制到达函数的末尾,那么就像您编写了 return None 一样。

相比之下,Pascal 将函数 的术语限制为具有返回值的子程序;如果你不想返回任何东西,你可以使用 procedure 代替。

关于c# - 为什么 C# 不允许我调用 void 方法作为返回语句的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665649/

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