Не могу передать массив в другой класс

288
04 июня 2022, 18:40

Есть класс наследующий от родительского, в родительском есть массив, который имеет get; set; Однако в дочернем классе он заполняется, а в родительском остается пустой. Пробовал так же с созданием структуры. То же самое.

Родительский класс:

internal ComputerStructForSend[] Computers = new ComputerStructForSend[5];

Дочерний:

Computers[countCompsAdded].cpu = Field[0].text;
                Computers[countCompsAdded].ram = Field[1].text;
                Computers[countCompsAdded].hardcount = Field[2].text;
                Computers[countCompsAdded].count = Field[3].text;
                Computers[countCompsAdded].year = Field[4].text;

В нем все заполняется, однако, из другого скрипта, эти стркутуры как и такие же массивы - пустые. Родительский класс отвечает за хранение данных. Что делается не так?

Answer 1

Вы не путаете случаем наследование в ООП и связи между объектами?

К примеру, пусть будет MyBase - родительский, MyClass - дочерний.

class Program
{
    static void Main(string[] args)
    {
        MyBase myBase = new MyClass(Enumerable.Range(0, 4).ToArray()); // [0, 1, 2, 3]
        Console.WriteLine("{0} {1}", myBase.GetType().Name, string.Join(", ", myBase.Numbers));
        Console.ReadKey();
    }
}
public class MyBase
{
    internal int[] _numbers;
    public int[] Numbers
    {
        get => _numbers;
        set => _numbers = value;
    }
}
public class MyClass : MyBase
{
    public MyClass(int[] numbers)
    {
        _numbers = numbers;
    }
}

Вывод в консоль

MyClass 0, 1, 2, 3

Так работает наследование, я ожидаемо не смог воспроизвести вашу проблему. Как видите, ваш вопрос не имеет ничего общего с наследованием.

Я допишу этот ответ, если вы предоставите более подробную информацию, ошибка в логике, возможно вы запутались в объектах, пишете массив в один экземпляр класса, а пытаетесь читать из другого, либо что-то еще может быть причиной, из показанного кода не ясно.

READ ALSO
Выходит из авторизации пользователя через 5 минут

Выходит из авторизации пользователя через 5 минут

Возникает проблема, что после авторизации через 5 минут пропадает авторизация, в startup:

160
Что означает строка using :::no-loc(Xamarin.Forms):::

Что означает строка using :::no-loc(Xamarin.Forms):::

Смотрю документацию к XamarinForms и там в пример встречаю что то на подобии вот этого (отсюда https://docs

277
Замыкание или ловушка замыкания С#

Замыкание или ловушка замыкания С#

Не могу понять что делает этот кусок кодаМожете объяснить?

174
как сохранить данные в localstorage

как сохранить данные в localstorage

В textarea записываются данные

151