internal class Program
{
static void Main(string[] args)
{
A a = new A();
Console.WriteLine(a.GetCount());
a.SetByte();
var b0 = a.GetByte(0);
var b1 = a.GetByte(1);
Console.WriteLine(b0 is null);
Console.WriteLine(b1 is null);
Console.Read();
}
}
public class A
{
protected virtual List<byte[]?> LM => new() { null, null, };
public int GetCount()
=> LM.Count;
public void SetByte()
{
LM[0] = new byte[2] { 0x01, 0x02, };
LM[1] = new byte[2] { 0x03, 0x04, };
}
public byte[]? GetByte(int idx)
=> LM[idx];
}
이 코드에서 b0와 b1이 항상 null이 됩니다.
LM은 상속 받는 클래스마다 초기값이 달라져야 하고 (그래서 virtual property로 만들었습니다.), 런타임에도 값을 변경해야 합니다. 어떻게 코드를 변경해야 할까요?