Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка System.NullReferenceException: "Object reference not set to an instance of an object." в C#

Александр Бумажный Знаток (269), на голосовании 3 недели назад
Я недавно стал изучать c#. Делаю все в VS. При попытке выполнения кода компилятор не выполняет цикл.



ПЕРВЫЙ файл кода:

using System;

namespace Обучение1;

public class Robot
{
private string? name;
private int id;
private byte[] coordinates { get; set; } = default!;

public void SetValues(string _name, int _id, byte[] _coords)
{
string name = _name;
int id = _id;
byte[] coords = _coords;
}
public void printValues()
{
Console.WriteLine(name + " Id: " + id + ". Coordinates");
foreach (byte el in coordinates)
{
Console.WriteLine(el);
}
}
}

ВТОРОЙ файл кода:

using System;
namespace Обучение1;
class Program
{
static void Main()
{
Robot bot = new Robot();
bot.SetValues("Bob", 100, new byte[] { 0, 1, 0 });
bot.printValues();
}
}
Голосование за лучший ответ
коллекция клипов skerman Знаток (328) 1 месяц назад
Причина ошибки указана в сообщении об ошибке: одна из объектных ссылок содержит null. В данном случае это может быть career_group_id или career[cn]. Надо поставить точку останова внутри цикла и смотреть значения переменных. Или подумать, где может быть null.
Петр Петров Мудрец (15769) 1 месяц назад
Я конечно уже порядком подзабыл С#, и все же почему в методе SetValues при инициализации переменных объекта указываются их типы, т.е. почему не записать так:

public void SetValues(string _name, int _id, byte[] _coords)
{
name = _name;
id = _id;
coordinates = _coords;
}
Александр Бумажный Знаток (269) 1 месяц назад
Блин, спасибо большое, а то я сижу и ищу ответ час... Думал проблема реально запарная, а на самом деле я просто написал то, что не надо было)
Jurijus Zaksas Искусственный Интеллект (458567) 1 месяц назад
В данном месте coordinates имеет значение null.
Почему - это уж тебе виднее.

>При попытке выполнения кода компилятор не выполняет цикл.
Во время выполнения компилятор уже в принципе не работает, кто тебе вообще такую глупость сказал?
Александр Бумажный Знаток (269) 1 месяц назад
Спасибо. Я просто очень недавно познакомился со всем этим, поэтому допускаю глупые ошибки.
Похожие вопросы