C# 在代码块中使用return关键字

C# 在代码块中使用return关键字,c#,function,return,C#,Function,Return,说: if (abc == "a") { // do something here... return; } 和上面一样,但是没有return关键字 我是一名C#编码器,我知道return关键字后跟一个类型或变量返回该项,但在上面的上下文中,return似乎只是为了退出代码块,但它是否对代码进行了任何功能或性能更改 谢谢“return”退出函数,而不仅仅是封闭的代码块。因此,如果您的代码块位于函数的上下文中,比如(我不知道C,所以我使用Java语法): 如果abc==“a”则“在此处执行其他操

说:

if (abc == "a")
{
// do something here...
return;
}
和上面一样,但是没有return关键字

我是一名C#编码器,我知道return关键字后跟一个类型或变量返回该项,但在上面的上下文中,return似乎只是为了退出代码块,但它是否对代码进行了任何功能或性能更改

谢谢

“return”退出函数,而不仅仅是封闭的代码块。因此,如果您的代码块位于函数的上下文中,比如(我不知道C,所以我使用Java语法):

如果
abc==“a”
则“在此处执行其他操作”将不会运行。但是,如果您删除了
if
块中的return语句,那么它将运行。

函数退出“return”,而不仅仅是封闭的代码块。因此,如果您的代码块位于函数的上下文中,比如(我不知道C,所以我使用Java语法):


如果
abc==“a”
则“在此处执行其他操作”将不会运行。但是,如果删除了
if
块中的return语句,则它将运行。

return
语句将立即退出函数,因此它可能具有性能优势,因为函数中的以下代码根本不会执行。

return
语句将立即退出函数,因此,它可能具有性能优势,因为函数中的以下代码根本不会执行。

在您的情况下,否-但如果在“if”语句之后有其他代码,而您只想在语句为false时运行(例如,if
abc!=“a”
),然后,
返回
允许您绕过它并退出函数/方法。

在您的情况下,否-但是如果在“if”语句之后有其他代码,而您只想在语句为false时运行(例如,if
abc!=“a”
),然后,
return
允许您绕过它并退出函数/方法。

执行return语句将使执行跳出方法。如果没有返回,它将继续执行下一条语句。

执行返回语句将使执行跳出方法。如果没有返回,它只会继续执行下一个语句。

return语句终止其出现的方法的执行,并将控制权返回给调用方法。它还可以返回可选值。如果方法是void类型,则可以省略return语句

范例

//this would do nothing
public void method()
{
   return;
}


 //this would return true
 //notice the return type of bool this means
 //the method expects a true\false value
public bool method2()
{
   return true;
}

public void test()
{
    if(method2())
        method()
}
现在,如果运行测试方法2将始终返回true,方法1将结束其处理

return语句终止其出现的方法的执行,并将控制权返回给调用方法。它还可以返回可选值。如果方法是void类型,则可以省略return语句

范例

//this would do nothing
public void method()
{
   return;
}


 //this would return true
 //notice the return type of bool this means
 //the method expects a true\false value
public bool method2()
{
   return true;
}

public void test()
{
    if(method2())
        method()
}

现在,如果运行测试method2将始终返回true,method1将结束其处理

是,在这种情况下,您的方法没有返回类型。 e、 g


也就是说,如果abd=“a”,则退出该方法,以便其他一些代码不会被执行。

是的,在这种情况下,您的方法没有返回类型。 e、 g


也就是说,如果abd=“a”,则退出该方法,以便其他一些代码不会被执行。

在循环或case语句中,可以使用
break
来实现此结果。但是,这通常不适用于if语句或代码块


是的,return退出封闭函数。

在循环或case语句中,可以使用
break
来实现此结果。但是,这通常不适用于if语句或代码块


是的,return退出封闭函数。

return语句确实退出当前方法,而不仅仅是代码块(for/while/if/etc)。因此,它在以下情况下非常有用:

public void MyMethod(object myObject)
{
    if (myObject == null)
    {
        return;  // exits method.
    }

    // do something with myObject
}

附加信息:我要指出,许多人喜欢在一个方法中有一个退出点,但是,在某些情况下,做一些类似于这里的示例的事情是有用的。我总是想办法限制方法中返回点或退出点的数量。

return语句会退出当前方法,而不仅仅是代码块(for/while/if/etc)。因此,它在以下情况下非常有用:

public void MyMethod(object myObject)
{
    if (myObject == null)
    {
        return;  // exits method.
    }

    // do something with myObject
}

附加信息:我要指出,许多人喜欢在一个方法中有一个退出点,但是,在某些情况下,做一些类似于这里的示例的事情是有用的。我总是想办法限制方法中返回点或退出点的数量。

这是一种更干净的代码编写方法。我通常在方法开头或接近方法开头的一个保护子句中执行此操作。如果有错误情况,只需从方法中“返回”。它可以节省在else块中包装其余工作的时间。看起来很简单,但它有助于降低代码复杂度。

这是一种更简洁的代码编写方式。我通常在方法开头或接近方法开头的一个保护子句中执行此操作。如果有错误情况,只需从方法中“返回”。它可以节省在else块中包装其余工作的时间。看似微不足道,但它有助于降低代码复杂度。

我不认为这是一个好的建议-几乎总是最好在函数中有一个退出点(即结束点),并构建逻辑以适应这一点。任何需要维护你的代码的人都会为此而感谢你。不一定。我相信在许多情况下(例如,大多数递归基本情况下),
return
语句使代码更具可读性。这取决于具体情况。它可能会损害或提高可读性。但我同意,如果被误用,它可能会像goto一样。在很多情况下,为了满足单一出口点的狂热,扭曲函数的逻辑是不值得的——不仅是为了性能,而且是为了简单的可读性。一个出口点就是这样一个例子