【问题标题】:Error 1 'OrdLista': member names cannot be the same as their enclosing type C:错误 1 ​​'OrdLista':成员名称不能与其封闭类型 C 相同:
【发布时间】:2014-07-16 21:56:27
【问题描述】:

我以前看到过这个答案,但我无法对此做出任何解释,所以我真的希望有人可以扇我一巴掌,告诉我我不明白的地方。

错误 1 OrdLista: 成员名称不能与其封闭相同 C型:

class OrdLista
    {
        //Detta är ordlistan för de förutbestämda orden som kommer att finnas utöver det som spelaren skapar själv

        private List<string> ord = new List<string>();
        public void OrdLista()
        {
            //Det förutbestämda ordet i det här spelet är "projektarbete" och endast ett ord kommer att användas.
            ord.Add("projektarbete"); //ord.add lägger till fler ord.
            ord.Sort();
            foreach (string word in ord)
            {
                Console.WriteLine(word);
            }
        }
    }
}

使用系统; 使用 System.Collections.Generic;

命名空间 HängaGubbe {

class Meny
{

    static void main()
    {
        while (true)
        {
            //_____________________________________MENY_____________________________________________________
            //Detta är menyn, de första två raderna är introduktionen
            Console.WriteLine("\n\n\tVälkommen, dags att hänga gubben!\n\n");
            Console.WriteLine("\n\nRegler: Lägg till egna ord eller spela med slumpmässiga!\n\n");

            //Nu kommer menyn, spelaren har fyra (4) alternativ att välja på.
            // 1 Öppnar för spelaren att lägga till egna ord till spelet
            Console.WriteLine("\n\n\t 1 Lägg till egna ord");
            // 2 Visar alla förutbestämda ord som finns i spelet
            Console.WriteLine("\t 2 Lista alla förbestämda ord");
            // 3 är alternativet spela
            Console.WriteLine("\t 3 Spela!");
            //4 Avslutar spelet
            Console.WriteLine("\t 4 Avsluta");
            //Instruktionen som ber spelaren att välka alternativ 1-4
            Console.WriteLine("\t Välj något av alternativen 1-4!");

            string menyVal = Console.ReadLine();

            //__________________________________Alternativ 1: SPELAR ORD_________________________________
            if (menyVal == "1")
            {
                Console.WriteLine("\n\n\tLägg till egna ord! Max 5st");
                // 5 ord som max, för att utöka lägg till fler och fortsätt i nummerordningen.
                string[] ordLista = new string[10];
                ordLista[0] = Console.ReadLine();
                ordLista[1] = Console.ReadLine();
                ordLista[2] = Console.ReadLine();
                ordLista[3] = Console.ReadLine();
                ordLista[4] = Console.ReadLine();


                // Slumpvalt ord
                Console.WriteLine("\n\n\tKan du gissa rätt?");
                Random randGen = new Random();
                var idx = randGen.Next(0, 4);
                string hemligt = ordLista[idx];

                char[] gissatOrd = new char[hemligt.Length];
                char gissa;
                bool rättOrd = false;
                Program kontroll = new Program();
                for (int i = 0; i < gissatOrd.Length; i++)
                {
                    gissatOrd[i] = '*';
                }

                Console.Write("\n\n\t");
                for (int i = 0; i < gissatOrd.Length; i++)
                {
                    Console.Write(gissatOrd[i]);
                }


                Console.WriteLine("\n\t*****************************");
                while (!rättOrd)
                {

                    Console.Write("\n\tVälj en bokstav från A till Ö");
                    gissa = Convert.ToChar(Console.ReadLine());

                    kontroll.ordKontroll(hemligt, gissatOrd, gissa);
                    rättOrd = kontroll.rättaOrd(hemligt, gissatOrd);

                    Console.WriteLine("\n\t*****************************");

                }


            }

            //__________________________ALTERNATIV 2: ORDLISTA___________________________

            else if (menyVal == "2")
            {
                //Anrop till ordlisatn
                Console.WriteLine("\n\n\tOrdlista\n");
                OrdLista showing = new OrdLista();
                showing.Ordlista();

            }


             //__________________________ALTERNATIV 3: SPELA___________________________

            else if (menyVal == "3")
            {
                while (true)
                {
                    Console.WriteLine("\n\n\tLycka till nu kompis!");
                    Console.WriteLine("\n\n\tVilket ord letar vi efter?");

                    //Förbestämda ord
                    string[] ordLista = new string[10];
                    ordLista[0] = "projektarbete";


                    //Slumpade ord
                    Random randGen = new Random();
                    var idx = randGen.Next(0, 2);
                    string hemligtOrd = ordLista[idx];
                    char[] gissatOrd = new char[hemligtOrd.Length];
                    char gissa;
                    bool rättaOrd = false;
                    Program kontroll = new Program();
                    for (int i = 0; i < gissatOrd.Length; i++)
                    {
                        gissatOrd[i] = '*';
                    }

                    Console.Write("\n\n\t");
                    for (int i = 0; i < gissatOrd.Length; i++)
                    {
                        Console.Write(gissatOrd[i]);
                    }

                    Console.WriteLine("\n\tGissa på en bokstav!");
                    while (!rättaOrd)
                    {
                        Console.Write("\nVälj en bokstav från A till Ö:");
                        gissa = Convert.ToChar(Console.ReadLine());

                        kontroll.ordKontroll(hemligtOrd, gissatOrd, gissa);
                        rättaOrd = kontroll.rättaOrd(hemligtOrd, gissatOrd);
                    }




                    Console.WriteLine("\n\n\n\tTryck på valfri knapp för att återgå\n\n");
                    Console.ReadKey();

                    break;

                }
            }
            //__________________________ALTERNATIV 4: Avsluta___________________________

            else if (menyVal == "4")
            {
                Console.WriteLine("\n\n\tTack för att du ville spela och välkommen åter!\n\n\n\n");
                break;
            }
        }

    }


}

}

请帮助我,谢谢!

【问题讨论】:

  • 错误 1 ​​'HängaGubbe.OrdLista' 不包含 'Ordlista' 的定义,并且找不到接受类型为 'HängaGubbe.OrdLista' 的第一个参数的扩展方法 'Ordlista'(您是否缺少使用指令或程序集引用?)如果我删除 void,这就是我得到的。对不起,没有粘贴整个。它现在在那里
  • 感谢您的回答,抱歉拖慢了。我怎么做? :)

标签: c#


【解决方案1】:

您的类名为OrdLista,并且您还有一个方法public void OrdLista(),如果这应该是您的类的构造函数,您需要删除void

一个构造函数有一个作用域(这里是public)和后面跟零个或多个参数的类名。

编辑:似乎 OrdaLista.OrdaLista() 应该是一个方法而不是构造函数,将方法重命名为 不同 但仍然有意义并读取 void。

编辑 2:你应该怎么做:

class OrdLista
{
    //Detta är ordlistan för de förutbestämda orden som kommer att finnas utöver det som spelaren skapar själv

    private List<string> ord = new List<string>();
    public void OrdListaToConsole()
    {
        //Det förutbestämda ordet i det här spelet är "projektarbete" och endast ett ord kommer att användas.
        ord.Add("projektarbete"); //ord.add lägger till fler ord.
        ord.Sort();
        foreach (string word in ord)
        {
            Console.WriteLine(word);
        }
    }

}

然后你这样称呼它:

OrdLista showing = new OrdLista();
showing.OrdListaToConsole();

注意:ord 列表中没有任何项目,只有“projektarbete”。

【讨论】:

  • 感谢您的回答,抱歉拖慢了。我怎么做? :)
  • 非常感谢!这似乎有帮助,现在我的下一个麻烦突然出现了:错误 1 ​​程序 '\Hänga_Gubbe_Projetk_140716\obj\x86\Debug\Hänga_Gubbe_Projetk_140716.exe' 不包含适合入口点的静态 'Main' 方法 Hänga_Gubbe_Projetk_140716 这是什么意思?
  • 当您的第一个问题得到解答后,请提出一个新问题。如果需要,您可以发布此问题的链接。
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 2020-07-26
  • 1970-01-01
  • 2020-08-24
  • 2012-05-29
  • 1970-01-01
相关资源
最近更新 更多