我无法在goto语句的范围内修复“没有这样的标签'名称'”

时间:2018-11-24 04:58:31

标签: c#

我是C#的初学者,当我创建一个名为“ X”的程序时,出现了一个错误消息“在goto语句范围内没有这样的'名字'”你们可以帮我吗,我非常困惑我希望这是我实际发布的第二个程序,第一个是一个愚蠢的小计算器,谢谢您,再见。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Password
{
    class Program
    {
        static void Main(string[] args)
        {
            Start:
            Console.WriteLine("Hello Welcome to X, The application with options because why not");
            Console.WriteLine("Whats The password?");
            string Pass = Convert.ToString(Console.ReadLine());
            if (Pass == "80085")
            {
                Console.ReadLine();
                Console.WriteLine("W-What the heck T-That command overrided 
    mmy... Welcome to X, Shawn");
                Console.WriteLine("Press a key to countinue, Shawn");
                Console.ReadLine();
                Console.Clear();
                Console.WriteLine("Please choose a options for X");
                Console.WriteLine("Press a key to countinue, Shawn");
                Console.ReadLine();

                Commands:
                Console.WriteLine("IF you dont know how to use this, \njust type Credits for credits \nGTS to go back to the start \nExit to well exit\n And Help for well help");

            }

            else
            {
                Console.WriteLine("Incorrect, Please use a vaild password");
                Console.WriteLine("Press a key to Clear and go back to start");
                Console.ReadLine();
                Console.Clear();
                goto Start;


            }

            string Cho = Convert.ToString(Console.ReadLine());
            if (Cho == "Credits")
            {
                Console.WriteLine("Credits:\n Shawn");
                Console.WriteLine("Press a key to Clear and go back to commands");
                Console.ReadLine();
                Console.Clear();
                goto Commands;

            }


        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的enum Type { NONE = 0; A = 1; B = 2; C = 3; } 标签是在IF块内定义的,因此在该块之外无法访问。此外,请尝试避免在C#程序中使用Commands

答案 1 :(得分:0)

您的问题首先是范围。

但是我认为真正的问题和真正的答案是不要使用goto

在现代语言中使用它的理由很少,它使您的代码在视觉上难以预测,而且我记得的地方很少,它使您的方法更具可读性。

有一些例外情况,我们可以辩论直到奶牛回家,但是它们都不能代表您想要做的事情。

  • 如果您需要循环使用while
  • 如果您需要不做进一步处理就继续循环,请使用continue
  • 如果您需要封装逻辑,请使用方法或局部方法。
  • 如果需要分支,请使用If