Это программа на C#.
У меня на плате есть несколько микроконтроллеров, каждый из которых может иметь разные конфигурации.
Чтобы описать это, я создаю класс Config, который определяет конфигурацию (имя, число и т. д.)
Среди полей конфигурации находится массив из 4 байтов.
Сейчас я делаю пару конфигураций, затем задаю их значения.
Это работает.
Теперь я попробую одновременное создание конфигураций и установка значений. Это не работает. В итоге массив имеет одинаковые значения в обеих конфигурациях, даже если они являются отдельными объектами. Никаких предупреждений и ошибок.
Вот код. В комментариях вы узнаете, что пошло не так.
public class Config
{
public byte ConfigNum { get; set; }
public byte[] ConfigData { get; set; } = new byte[4];
}
static void Main()
{
Config c0 = new Config();
Config c1 = new Config();
c0.ConfigNum = 11;
c0.ConfigData[3] = 13;
c1.ConfigNum = 22;
c1.ConfigData[3] = 23;
// Check whats in there
Console.WriteLine(c0.ConfigNum); // Expect 11
Console.WriteLine(c0.ConfigData[3]); // Expect 13
Console.WriteLine(c1.ConfigNum); // Expect 22
Console.WriteLine(c1.ConfigData[3]); // Expect 23
// Now try to make configurations on the fly
byte[] RConfigData1 = { 11, 12, 13, 14 }; // Make a temporary array
Config c3 = new Config() // Make and add a configuration with the values in the temporary array
{
ConfigNum = 55,
ConfigData = RConfigData1
};
RConfigData1[3] = 24; // change a value in the temporary array
Config c4 = new Config() // Make and add a configuration with the values in the temporary array
{
ConfigNum = 66,
ConfigData = RConfigData1
};
// Check whats in there
Console.WriteLine(c3.ConfigNum); // Expect 55
Console.WriteLine(c3.ConfigData[3]); // Expect 14 BUT GET 24
Console.WriteLine(c4.ConfigNum); // Expect 66
Console.WriteLine(c4.ConfigData[3]); // Expect 24
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-an-obje
У меня проблемы с иерархией объектов. В частности, массив в объекте, который используется в другом объекте. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Создайте словарь Python из дерева объектов, связанных иерархией родитель-потомок.
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-