Изучаю С#, написал ошибочную программу, нужна помощь, почему она не работает так, как я хочу

Я новичок в кодировании и написал эту маленькую программу чтения консоли, чтобы попытаться разобраться в массивах, методах и т. д.
Я знаю, что мой код очень ошибочен и, вероятно, написан неправильно (по книге).
Я бы хотел например, помощь в том, как исправить мою программу, у нее есть проблема, когда консоль позволяет мне вводить число, но не считывается из моего метода выбора. Любая помощь будет принята с благодарностью.

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

namespace PalacioGameImproved
{
class Program
{
    static void Main(string[] args)
    {
        WelcomeMessage();
        choices();

    }


    public static string WelcomeMessage()
    {
        string writeLines;
        Console.WriteLine("Pick a DooWop");
        Console.WriteLine("{0,15}", "0 = Johnny");
        Console.WriteLine("{0,13}", "1 = Nick");
        Console.WriteLine("{0,15}", "2 = Conrad");
        Console.WriteLine("{0,14}", "3 = Diane");
        Console.WriteLine("{0,13}", "4 = Rick");
        writeLines = Console.ReadLine();
        return writeLines;
    }

    public static void choices()
    {


        string[] names = new string[5];
        names[0] = "Johnny";
        names[1] = "Nick";
        names[2] = "Conrad";
        names[3] = "Diane";
        names[4] = "Rick";

        string UserInput = Console.ReadLine();

        if (UserInput == "0")
        {
            Console.WriteLine("is it the array");
        }

        else if (UserInput == "1")
        {
            Console.WriteLine(names[1]);
        }

        else if (UserInput == "2")
        {
            Console.WriteLine(names[2]);
        }

        else if (UserInput == "3")
        {
            Console.WriteLine(names[3]);
        }

        else if (UserInput == "4")
        {
            Console.WriteLine(names[4]);
        }
        else
        {
            Console.WriteLine("That was not one of the choices, please try again.");
            WelcomeMessage();
        }
    }
}

}


person JohnDevince    schedule 09.01.2017    source источник
comment
Что вы имеете в виду, не читается из моего метода выбора? варианты() кажутся мне правильными. Для чего writeLines?   -  person Circle Hsiao    schedule 09.01.2017
comment
WriteLines был настроен на возврат строки из Console.ReadLine, потому что без него я получил ошибку о том, что не все пути кода возвращают значение.   -  person JohnDevince    schedule 09.01.2017
comment
Пожалуйста, не искажайте свой пост, вы можете попросить SE удалить вашего пользователя из этого вопроса, другие пользователи потратили время, чтобы ответить на него.   -  person Petter Friberg    schedule 10.07.2017


Ответы (1)


Вы используете Console.ReadLine 2 раза. Пример .net Fiddle Ваш код должен быть

using System;

public class Program
{
    public static void Main()
    {
       WelcomeMessage();
       choices();
    }

    public static void WelcomeMessage()
    {
       Console.WriteLine("Pick a DooWop");
       Console.WriteLine("{0,15}", "0 = Johnny");
       Console.WriteLine("{0,13}", "1 = Nick");
       Console.WriteLine("{0,15}", "2 = Conrad");
       Console.WriteLine("{0,14}", "3 = Diane");
       Console.WriteLine("{0,13}", "4 = Rick");
   }

   public static void choices()
   {
      string[] names = new string[5];
      names[0] = "Johnny";
      names[1] = "Nick";
      names[2] = "Conrad";
      names[3] = "Diane";
      names[4] = "Rick";

      string UserInput = Console.ReadLine();

      if (UserInput == "0")
      {
         Console.WriteLine("is it the array");
      }

      else if (UserInput == "1")
      {
         Console.WriteLine(names[1]);
      }

      else if (UserInput == "2")
      {
         Console.WriteLine(names[2]);
      }

      else if (UserInput == "3")
      {
         Console.WriteLine(names[3]);
      }

      else if (UserInput == "4")
      {
          Console.WriteLine(names[4]);
      }
      else
      {
          Console.WriteLine("That was not one of the choices, please try again.");
          WelcomeMessage();
      }
   }
}
person Max    schedule 09.01.2017
comment
Большое спасибо! Есть ли у вас какой-либо вклад в мой код? Есть ли что-то, чего мне следует опасаться в будущем? - person JohnDevince; 09.01.2017
comment
Посетите сайт Code Review Stack Exchange. - person BLT; 16.01.2017