Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么如果操作不返回值,它需要一个return语句?_C# - Fatal编程技术网

C# 为什么如果操作不返回值,它需要一个return语句?

C# 为什么如果操作不返回值,它需要一个return语句?,c#,C#,考虑以下几点: public Action MyAction() { //Take some action } 现在请注意: 但是,我们也会遇到以下编译时错误: 我希望编译时能更好地处理这个问题,还是我遗漏了什么?操作本身可能不需要返回语句,但MyAction方法确实需要。为什么?因为它有一个返回值: public Action MyAction() { //Take some action } 编译器对深入了解返回值是什么或返回后它将如何运行的细节不感兴趣。它只是强制非v

考虑以下几点:

public Action MyAction()
{
   //Take some action
}
现在请注意:

但是,我们也会遇到以下编译时错误:


我希望编译时能更好地处理这个问题,还是我遗漏了什么?

操作本身可能不需要
返回
语句,但
MyAction
方法确实需要。为什么?因为它有一个返回值:

public Action MyAction()
{
    //Take some action
}

编译器对深入了解返回值是什么或返回后它将如何运行的细节不感兴趣。它只是强制非
void
方法返回正确类型的实例。

MyAction是一个返回操作的方法……您正在创建一个需要返回
Action
对象的方法要正确,它不需要
return
,它要求方法结尾不可到达。它可以为(;;)抛出
,甚至挂起