如何解决方法程序中的3个参数?

时间:2016-02-20 03:27:48

标签: c# arrays methods parameters

我正在尝试为下面写的问题编写C#代码,但无论我做什么,我都无法弄清楚如何解决问题。我想我无法理解为什么它应该以它的方式完成!无论如何,这是我需要做的:启动一个新的控制台应用程序。

  • 在Main方法中,创建一个大小为5的字符串数组,为该数组命名 轮廓。要求用户输入他们的名字,但你必须这样做 通过调用一个方法,你将编写一个名为GetStringInput的方法 方法应该需要3个参数。

    • 第一个是字符串,这是询问用户的问题。 (对于第一次使用,您可能会传入一个字母“Home name”)

    • 第二个参数是Profile数组

    • 第三个参数是一个int,索引,意思是,数组中应该存储用户答案的​​位置。

      1. 第一个问题(名字)。

      2. 再次通过调用相同的GetStringInput向用户询问他们的姓氏,但传递一个不同的问题。

      3. 再次通过调用GetStringInput来询问用户的年龄, 但传递一个不同的问题(请注意,年龄将输入并存储为字符串,而不是转换为int)

      4. 再次通过调用相同的GetStringInput向用户询问他们喜欢的颜色,但传递一个不同的问题。

      5. 再次通过呼叫相同的GetStringInput向用户询问他们最喜欢的运动,但传递一个不同的问题。

  • 现在调用名为DisplayProfile的新方法。此方法应该要求字符串数组作为参数,并且您将传入Profile数组。添加Console.ReadLine();语句,您的Main方法已完成。

  • 现在实施您调用的两种方法,GetStringInputDisplayProfileDisplayProfile方法应该从数组中提取信息,并以合理的方式写出值。

    例如你的名字是John Smith,你已经21岁了。你最喜欢的颜色是绿色,你最喜欢的运动是网球。

现在,我写了这段代码:

static void Main(string[] args)
            {

               string[] Profile = new string[5];

                    GetUserInput(Profile);     
                    DisplayProfile(Profile);
            }

            private static void DisplayProfile(string[] Showrofile)
            {
                Console.WriteLine("Your name is {0} {1}, you are {2} years old.\nYour favorite color is {3} and your favorite sport is {4}.",
                                  Showrofile[0], Showrofile[1], Showrofile[2], Showrofile[3], Showrofile[4]);
            }
            public static string [] GetUserInput(string[] Getprofile)
            {
                string[] Question = new string[5];
                Question[0] = "Enter your First name:";
                Question[1] = "Enter your Last name:";
                Question[2] = "Enter your Age:";
                Question[3] = "Enter your Favorite color:";
                Question[4] = "Enter your Favorite sport:";

                for (int i = 0; i < Question.Length; i++)
                {
                    Console.WriteLine(Question[i]);
                    Getprofile[i] = Console.ReadLine();
                }
                return Getprofile;
            }
        }
    }

我不知道该怎么办。感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我一直在看评论而其他人都是对的,你应该阅读如何提出这个问题,因为它不清楚。似乎一些简单的谷歌搜索很容易回答这个问题,但我会怜悯你的头发。以下是您要求的示例。

有时最好的方法是走开然后回到平静,因为当你问Gabe如何使用三个参数制作方法时,你几乎已经回答了自己的问题。见下文,祝你好运,慢慢来。

public static void Main()
{
    const int TOTAL_QUESTIONS = 5;

    string[] profile = new string[TOTAL_QUESTIONS];
    string[] questions = new string[]
    {
        "Enter your First name:", 
        "Enter your Last name:", 
        "Enter your Age:", 
        "Enter your Favorite color:", 
        "Enter your Favorite sport:"
    };

    for (int i = 0; i < TOTAL_QUESTIONS; i++)
    {
        profile = GetUserInput(questions[i], profile, i);   
    }

    DisplayProfile(profile);
}

private static void DisplayProfile(string[] profile)
{
    Console.WriteLine($"Your name is {profile[0]} {profile[1]}, you are {profile[2]} years old.\nYour favorite color is {profile[3]} and your favorite sport is {profile[4]}.");
}


//Here is where you put the parameters you told Gabe about.
private static string[] GetUserInput(string question, string[] profile, int index)
{
    Console.WriteLine(question);
    profile[index] = Console.ReadLine();
    return profile;
}

编辑:

由于您在关于老师的评论中提到了GetUserInput不需要返回任何内容,您可以看到它是如何工作的。它看起来像这样。

public static void Main()
{
    const int TOTAL_QUESTIONS = 5;

    string[] profile = new string[TOTAL_QUESTIONS];
    string[] questions = new string[]
    {
        "Enter your First name:", 
        "Enter your Last name:", 
        "Enter your Age:", 
        "Enter your Favorite color:", 
        "Enter your Favorite sport:"
    };

    for (int i = 0; i < TOTAL_QUESTIONS; i++)
    {
        GetUserInput(questions[i], profile, i);   
    }

    DisplayProfile(profile);
}

private static void DisplayProfile(string[] profile)
{
    Console.WriteLine($"Your name is {profile[0]} {profile[1]}, you are {profile[2]} years old.\nYour favorite color is {profile[3]} and your favorite sport is {profile[4]}.");
}

private static void GetUserInput(string question, string[] profile, int index)
{
    Console.WriteLine(question);
    profile[index] = Console.ReadLine();
}