使用范围分隔代码

时间:2014-03-05 01:44:10

标签: c#

我正在尝试使用Scopes分隔函数的多个部分,但它看起来不起作用,如下面的代码所示

private static void Method()
{
    {
        //Code execution stops here. Although the return is defined inside a scope.
        return;
    }

    {
        Console.WriteLine("Whowaaah");
    }
}

那么我做错了什么?

2 个答案:

答案 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.
    }
}