У меня есть следующий простой тест:
class C<T>
{
public struct A
{
int x;
}
}
class Program
{
static unsafe void Main(string[] args)
{
IntPtr p = new IntPtr();
var a = (C<int>.A*)p.ToPointer();
}
}
Код генерирует ошибку CS0208:
Cannot take the address of, get the size of, or declare a pointer to a managed
type ('C<int>.A')
Может ли кто-нибудь объяснить, почему структура считается "управляемой" в этом сценарии?