我正在尝试使用Scopes分隔函数的多个部分,但它看起来不起作用,如下面的代码所示
private static void Method()
{
{
//Code execution stops here. Although the return is defined inside a scope.
return;
}
{
Console.WriteLine("Whowaaah");
}
}
那么我做错了什么?
答案 0 :(得分:2)
块(即大括号内的一系列语句)会影响其中定义的变量的可见性,而不影响程序流。你所看到的是完全正常的行为。
也许您正在寻找单独的方法?
答案 1 :(得分:1)
即使它们只包含一行代码,也可以使用多种方法。这将更容易维护,特别是因为它听起来像你想要一个控制许多其他方法的方法。
您正在做的两种可能的解决方案可能是:
如果您需要做多件事:
private static void Method()
{
if(ShouldDoSenseless1())
{
Senseless1();
}
if(ShouldDoSenseless2())
{
Senseless2();
}
if(ShouldDoSenseless3())
{
Senseless3();
}
// etc.
}
或者,如果你只应该在一系列选择中做一件事:
private static void Method1()
{
var doWhatNow = WhatStepShouldBePerformed();
switch(doWhatNow)
{
case 1:
DoSenseless1:
break;
case 2:
DoSenseless1:
break;
case 3:
DoSenseless1:
break;
break;
// etc.
}
}