Неясное поведение в списке и/или классом - C#
Формулировка задачи:
Есть программа с написанным классом:
В программе организован список типа HyperFile: И существует странное поведение при изменении полей определенного экземпляра класса, например:
- изменяет значение поля KS1 в конкретном, одном экземпляре HyperFiles[index], но:
- изменяет значение поля kg[0] во всех объектах в списке.
- работает нормально, только на один экземпляр
В чем может быть причина такого неясного поведения? Среда MS Visual Studio 2010
public class HyperFile
{
ushort width;
byte height;
byte[] kg = new byte[6];
byte[] kbsb = new byte[6];
byte kbst, kdchk;
byte KS1, KS2;
bool LK1, LK2;
uint[] amp1 = new uint[4];
uint[] amp2 = new uint[4];
}private List<HyperFile> Hyperfiles = new List<HyperFile>();
HyperFiles[index].KS1 = 100;
HyperFiles[index].kg[0] = 10;
byte[] KG = new byte[]{10,20,30,40,50,60};
HyperFiles[index].kg = KGРешение задачи: «Неясное поведение в списке и/или классом»
textual
Листинг программы
for (int index = 0; index < HyperFiles.Count; index++)
{
byte[] KG = new byte[] { 10, 20, 30, 40, 50, 60 };
HyperFiles[index].kg = KG;
}