'void'是函数的有效返回值吗?

Ale*_*der 7 c# return void

private void SaveMoney(string id...)
{
    ...
}

public void DoSthWithMoney(string action,string id...)
{
    if(action=="save") return SaveMoney(string id);
    ...
}
Run Code Online (Sandbox Code Playgroud)

为什么C#不允许我通过公共函数返回私有函数的空白?它甚至是相同的数据类型"无效"......

或者数据类型是否无效?

以下代码真的是最短的解决方法吗?

if(action=="save") {
    SaveMoney(string id);
    return;
}
Run Code Online (Sandbox Code Playgroud)

akt*_*ton 6

void不是C#中的类型.在这种情况下,void表示没有返回类型或值,因此您不能return像第一个示例中那样使用它.

这与C不同,例如,void可以表示无类型或未知类型.


Tho*_*mar 5

void实际的回报率(数据)型!void没有结果.因此,void即使您声明的方法也被声明,您也无法在声明的方法中返回值void.

我必须承认这将是一个很好的捷径,但事情并非如此:-)


只是另外一个想法:如果你想要的是什么,void它将成为数据类型,也是该数据类型唯一可能的值,return x;定义为将值返回x给调用者.所以return void;会将值返回void给调用者 - 根据定义,这是不可能的.

这是针对不同的null,例如,如null参考类型的有效值.