Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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#)_C#_Goto - Fatal编程技术网

转到-不在范围内(C#)

转到-不在范围内(C#),c#,goto,C#,Goto,我对代码非常陌生。有人能用一种简单的方式解释为什么我不能像这样使用goto语句,使代码重新开始吗?或者,这是如何以正确的方式实现的?还有,为什么我在使用“static”时会收到错误消息。 ** goto statmenet范围内没有此类标签“Start” “静态修饰符对此项无效” 首先,您的AskUser方法错误地嵌套在另一个方法中-将其移出 其次:goto仅在单个方法中有效;可以围绕单个堆栈帧跳转-不能在堆栈帧之间跳转 第三:你应该使用goto的次数。。。嗯,它不是很零,但它逐渐接近零。首先,

我对代码非常陌生。有人能用一种简单的方式解释为什么我不能像这样使用goto语句,使代码重新开始吗?或者,这是如何以正确的方式实现的?还有,为什么我在使用“static”时会收到错误消息。 ** goto statmenet范围内没有此类标签“Start” “静态修饰符对此项无效”


首先,您的
AskUser
方法错误地嵌套在另一个方法中-将其移出

其次:
goto
仅在单个方法中有效;可以围绕单个堆栈帧跳转-不能在堆栈帧之间跳转


第三:你应该使用
goto
的次数。。。嗯,它不是很零,但它逐渐接近零。

首先,你的
AskUser
方法被错误地嵌套在另一个方法中-将它移出

其次:
goto
仅在单个方法中有效;可以围绕单个堆栈帧跳转-不能在堆栈帧之间跳转


第三:你应该使用
goto
的次数。。。好吧,它不是很零,但它逐渐接近零。

除非你必须去,否则不要使用goto! 正如@Marc gravel所说,它在单一方法中是有效的。

或者:您可以为Main方法中使用的代码u创建一个方法,然后从Main方法和使用goto语句的另一个方法调用它。 比如:


除非你必须去,否则不要使用goto! 正如@Marc gravel所说,它在单一方法中是有效的。

或者:您可以为Main方法中使用的代码u创建一个方法,然后从Main方法和使用goto语句的另一个方法调用它。 比如:


你可以这样做

public static Random randd = new Random();
public static void FlachCards()
{
Start:

    if (AskAUser() == "Y")
    {
        goto Start;
    }

}
public static String AskAUser()
{
    Console.WriteLine("Enter Y to play again");
    return Console.ReadLine();
}

你可以这样做

public static Random randd = new Random();
public static void FlachCards()
{
Start:

    if (AskAUser() == "Y")
    {
        goto Start;
    }

}
public static String AskAUser()
{
    Console.WriteLine("Enter Y to play again");
    return Console.ReadLine();
}

我对代码非常陌生。那就不要学着使用goto,你永远都不需要在c#中使用它。@Rotem好吧,“从不”是个很强的词。。。有些东西你不应该习惯性地使用,但当你确切地知道为什么要使用它时,它们确实有真正的用途。它可能是我一年用一次的东西…@MarcGravel在我看来,如果你知道如何使用
goto
,而不把事情搞得一团糟,那么你就知道应该忽略我的建议。我对编码非常陌生。那就不要学着使用goto,你永远都不需要在c#中使用它。@Rotem好吧,“从不”是个很强的词。。。有些东西你不应该习惯性地使用,但当你确切地知道为什么要使用它时,它们确实有真正的用途。它可能是我每年使用一次的东西…@MarcGravel在我看来,如果你知道如何使用
goto
,而不会造成混乱,那么你就知道应该忽略我的建议。它不一定嵌套错误。C#现在支持本地函数,它们不必用
static
关键字声明,即使它们是
static
方法的一部分。它不一定嵌套不正确。C#现在支持本地函数,只需不使用
static
关键字声明它们,即使它们是
static
方法的一部分。
public static Random randd = new Random();
public static void FlachCards()
{
Start:

    if (AskAUser() == "Y")
    {
        goto Start;
    }

}
public static String AskAUser()
{
    Console.WriteLine("Enter Y to play again");
    return Console.ReadLine();
}