unsafe struct MyStruct
{
public MyStruct* s1;
private int y;
private int u;
}
unsafe
{
var s = new MyStruct();
var s1 = &s;
MyStruct* u;
u = s1->s1 == null ? s1 : s1->s1;
u = s1->s1 ?? s1; // compile error
}
Я привел код, который никак не могу для себя уяснить.
Почему вариант u = s1->s1 == null ? s1 : s1->s1; нормально компилируется
а другой вариант:
u = s1->s1 ?? s1; выдает ошибку. Left operand of the ?? should be reference or nullable type
Разве указатель на структуру — это не reference type???
Поясните пожалуйста.
Сильно не пинать.