Есть некий класс с конструктором
public class Neuron
{
public string name { get; set; }
public string rusname { get; set; }
public float[,] weight { get; set; }
public float sum {get;set;}
public Neuron(string name,string rusname)
{
this.name = name;
this.rusname = rusname;
weight = new float[7, 7];
sum = 0;
}
}
В другом классе я создаю объекты
neurons[0] = new Neuron("Zero", "Ноль");
neurons[1] = new Neuron("One", "Один");
neurons[2] = new Neuron("Two", "Два");
neurons[3] = new Neuron("Three", "Три");
neurons[4] = new Neuron("Four", "Четыре");
neurons[5] = new Neuron("Five", "Пять");
neurons[6] = new Neuron("Six", "Шесть");
neurons[7] = new Neuron("Seven", "Семь");
neurons[8] = new Neuron("Eight", "Восемь");
neurons[9] = new Neuron("Nine","Девять");
В конце работы программы я пытаюсь вывести имена объекта
string str = neurons[9].name;
string str1 = neurons[9].rusname;
При этом первая строка имеет значение и проблем с выводом нет, а значение второй - null. По какой причине?
Метод вывода имен:
public void screen_info()
{
terminal.Clear();
for(int i = 0; i < neurons.Length; i++)
{
terminal.Text += neurons[i].name + ": " + neurons[i].sum + Environment.NewLine+Environment.NewLine;
}
string str = neurons[9].name;
string str1 = neurons[9].rusname;
terminal.Text += str + " " + str1;
}
Нашёл участок кода, после которого значение второго имени становится null
if (File.Exists("weights.txt"))
{
using(FileStream file = new FileStream("weights.txt", FileMode.Open))
{
neurons = (Neuron[]) upload_saves.Deserialize(file);
}
}
public string name { get; set; }
public string rusname { get; set; }
public float[,] weight { get; set; }
public float sum {get;set;}
Чтобы значение не менялось нигде кроме конструктора, надо это заменить на
public string name { get; }
public string rusname { get; }
public float[,] weight { get; }
public float sum { get; }
public Neuron(string name,string rusname)
{
this.name = name;
this.rusname = rusname;
А здесь надо убедиться, что в имени аргумента нет опечатки. Лучше взять имя свойства и скопипастить его во все 3 места.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как в VS можно в удобном виде посмотреть иерархию(Что от какого класса досталось и т п) в удобном виде?
Нужно получить объект, точнее его значение и id по нажатию на 2d объектСами объекты выводятся в цикле при создании сцены, поэтому GameObject