1

私は C# プログラミングの初心者で、問題があります。関数を配置する場所と関数を宣言して、switch ステートメントから関数を呼び出せるようにする方法がわかりません。そして、関数で numberarr および wordarr 配列を使用できるようになりますか、それとも別の関数を作成する必要がありますか?ここに私のコードがあります:

class Program
{
    enum Menu
    {
        Numbers = 1,
        Words = 2,
        Exit = 3,
    }

    static void Main(string[] args)
    {
        bool isValid;
        do
        {
            isValid = true;
            Menu menu = 0;
            int number;
            string word;

            Console.WriteLine("Choose an option from the menu: ");
            Console.WriteLine("1. Numbers ");
            Console.WriteLine("2. Words ");
            Console.WriteLine("3. Exit ");

            switch (menu)
            {
                case Menu.Numbers:

                    List<int> numberarr = new List<int>();
                    Console.WriteLine("Please input as many numbers as you like or type exit");
                    number = int.Parse(Console.ReadLine());
                    numberarr.Add(number);



                    break;
                case Menu.Words:
                    List<string> wordarr = new List<string>();
                    Console.WriteLine("Please input as many numbers as you like");
                    word = Console.ReadLine();
                    wordarr.Add(word);

                    break;

                case Menu.Exit:

                    break;
                default:
                    Console.WriteLine("You have made an invalid selection, try again");
                    isValid = false;
                    break;
            }
        } while (isValid);

    }
}
class Choice
{
    static void Numbers(int sum, int count, int average, int max, int min)
    {

    }

    static void Words(string[] args)
    {

    }
    static void Exit()
    {

    }
}
4

3 に答える 3

0

私があなたの質問を理解している場合は、関数をクラス内に配置してください。それに応じてコードを調整しました。word/num クラスにも問題があるかもしれません。通常はインスタンス化する必要がありますが、 Choice myChoice = new Choice(); のようなものを使用します。クラス プログラム { enum メニュー { 数字 = 1、単語 = 2、出口 = 3、}

static void Main(string[] args)
{
    bool isValid;
    do
    {
        isValid = true;
        Menu menu = 0;
        int number;
        string word;

        Console.WriteLine("Choose an option from the menu: ");
        Console.WriteLine("1. Numbers ");
        Console.WriteLine("2. Words ");
        Console.WriteLine("3. Exit ");

        switch (menu)
        {
            case Menu.Numbers:

                List<int> numberarr = new List<int>();
                Console.WriteLine("Please input as many numbers as you like or type exit");
                number = int.Parse(Console.ReadLine());
                numberarr.Add(number);
                int retInt = functionGetInt(number) 


                break;
            case Menu.Words:
                List<string> wordarr = new List<string>();
                Console.WriteLine("Please input as many numbers as you like");
                word = Console.ReadLine();
                wordarr.Add(word);
                string retString = functionGetString(word);
                break;

            case Menu.Exit:

                break;
            default:
                Console.WriteLine("You have made an invalid selection, try again");
                isValid = false;
                break;
        }
    } while (isValid);
private string functionGetString(string pParmString)
{
//code
return "string";
}
private int functionGetInt(int pParmInt)
{

//code
return 0;
}

}

}

于 2013-07-20T23:46:36.450 に答える
0

識別子Choiceで宣言していないため、 Mainのクラスで定義されたメソッドを使用できません。クラス自体だけがその存在を知っているので、明示的に宣言しない限りpublic、C#クラスのプロパティはデフォルトでそうです。privatepublic

したがって、基本的にすべての宣言をChoicefrom からstatic void MethodNametoに変更するだけで、次のようにクラスpublic static void MethodNameから main でそれらを呼び出すことができます。Choice

   Choice.Exit();

編集: switch ステートメントを機能させるには、いくつかの変更も行う必要があります。コメントで指摘されているように、menuが 0 以外の値を持つ方法はありません。次のようなものを使用することをお勧めします。

        isValid = true;
        int menu = 0;
        int number;
        string word;

        Console.WriteLine("What type do you want to use?");
        Console.WriteLine("Press 1 for numbers, 2 for words, or 3 exit.");
        string input = Console.ReadLine(); // we must read the users input

        if (!int.TryParse(input, out menu))
        {
             // the user didn't enter a number make them try again
             // note you might want to use a loop here to ensure the program does not
             // proceed until the user has entered "1", "2", or "3"
        }

        switch (menu)
于 2013-07-20T23:54:32.480 に答える