-2
private void button1_Click(object sender, EventArgs e)
{
    string input = Console.ReadLine();
    {
        for (int x = 0; x < input.Length; x++)

введите сюда описание изображения

  • 1
    Как вы в GUI приложении пытаетесь читать консольный ввод? –  May 23 '18 at 12:59
  • добро пожаловать на Stack Overflow на русском! текстовую информацию лучше прилагать в виде текста: а) читать легче; б) можно копировать; в) поиск работает. исправить текст вопроса можно, нажав [edit] ниже текста вопроса – aleksandr barakin May 23 '18 at 13:11

1 Answers1

1

Ну да, nullReferenceException и будет
Смотрите: В строке input = Console.Readline() вы пытаетесь что-то прочитать.
Насколько я понимаю, читать нечего и input = null. null - потому что это значение по умолчанию для типа string.
В цикле (вот здесь x<input.Length) вы пытаетесь обратиться к свойству Length объекта input. Но у объекта input нет никаких свойств, он же null. О чем вам и кричит обработчик. Обратиться к самому input вы можете. Получите значение null и все, но вот попытка обратиться к его внутренним свойствам, которых нет, даст исключение.
Как говорил удав в мультике: "У меня не ни рук, ни ног!!!!"
Как исправить? Сделать проверку на null перед циклом. В примитивном варианте: if(input !=null){} -> входим в цикл. Иначе - нет. в более качественном варианте лучше использовать стандартный метод IsNullOrEmpty(). Тогда условие будет выглядеть так:

if(!String.IsNullOrEmpty(input){for...}
foxhound
  • 460