В этом коде я хочу создать указатель из типа MyStruct, но компилятор показывает мне эту ошибку: «Вы не можете получить адрес данного выражения».
Вот мой код:
unsafe class Program
{
static void Main(string[] args)
{
Test test = new Test();
//Error: You cannot take the address of given expression
fixed (MyStruct* ms = &test.MyStruct)
{
}
fixed (int* a = &test.a) //Is OK
{
}
}
}
unsafe class Test
{
public int a;
public MyStruct MyStruct { get; set; } = new MyStruct();
}
unsafe struct MyStruct
{
public int A;
public fixed int Ids[5];
public int B;
}
Я не понимаю, почему показывает мне эту ошибку. все выглядит нормально?
Кто-нибудь может объяснить, что происходит в этом коде?