";不允许初级构造函数主体”;错误

本文关键字:主体 构造函数 错误 quot 不允许 | 更新日期: 2023-09-27 18:27:28

我的代码"Primary Constructor Body Is Not Allowed"中出现了一个错误,似乎找不到修复它的方法。这个错误是因为我创建了一个新的公共方法,我也尝试过使用私有和受保护的方法,但错误仍然存在。这里还有其他人问了同样的问题。这个特定的人得到的答案让我相信它可能是OS X特有的。这是我的代码:

        string txt = WordBank ();
        string[] words = Moduel.TextToArray("Text.txt");
        string compWord = Moduel.Random (words);    
        Console.WriteLine ("I have chosen a random word, try to guess it one letter at a time");
    }
    public static void WordBank ();
    {
        string txt;
        Console.WriteLine ("Would you like to " +
            "(A) choose 4 letter words " +
            "(B) choose 5 letter words " +
            "(C) choose 6 letter words " +
            "(E) choose 7 lette r words or more?" +
            "(F) all words?");
        string input = Console.ReadLine ();
        if (input = "A")
            txt = "4 Letter Words.txt";
        else if (input = "B")
            txt = "5 Letter Words.txt";
        else if (input = "C")
            txt = "6 Letter Words.txt";
        else if (input = "E")
            txt = "7 Letters or More.txt";
        else if (input = "F")
            txt = "All Words.txt";
        else
        {
            Console.WriteLine("You haven't chosen a valid option, please try again");
            Main();
        }
        return txt;
    }
}

}

这是错误的图片。错误消息。

";不允许初级构造函数主体”;错误

中存在错误

公共静态void WordBank();

只需从中删除分号

公共静态void WordBank()

您的函数返回了一个字符串值,因此将函数的定义更改为

公共静态字符串WordBank()

public static void WordBank ();删除此行中尾随的;。如果必须从函数返回字符串,还可以将返回类型设置为string

因此,您的方法签名将如下所示:

public static string WordBank ()
    {
        string txt;
        //Rest of code comes here
        return txt;
    }

当前在方法声明后有;

public static void WordBank ();
{
    // code in your method
}

在方法声明后使用分号实际上与使用空方法体相同,因此在您的情况下,代码与相同

public static void WordBank ()
{
}
{
    // code in your method
}

这是不正确的。

为了解决此问题,请删除方法名称后的;

public static void WordBank ()
{
    // code in your method
}

代码中肯定有很多错误。

  1. string txt = WordBank ();,其中as您的函数不返回任何public static void WordBank ();都是无效的
  2. 您声明函数public static void WordBank ();的代码是错误的,因为您需要删除末尾的;
  3. 在函数中,您声明return txt;,这是不对的,直到您的函数实际返回一些东西

因此你的代码应该是

public static string WordBank()
{
    return "SomeString"; // in your case txt
}

感谢大家的快速回复,分号是问题所在(现在感觉真的很愚蠢:p)。