今回は 構築されたアンマネージド型 です。
公式はこちら
このブログでの目次?はこちら
C# 7.3 以前
型引数のある型(ジェネリック)構造体はアンマネージ型にできませんでした。
これからは
フィールド全てがアンマネージド型の場合、ジェネリック構造体がアンマネージドになります。
実例
struct MyType<T> { public T Value; } static void Main(string[] args) { unsafe { Console.WriteLine(sizeof(MyType<int>)); Console.WriteLine(sizeof(MyType<Program>)); } }
一つ目の sizeof は型引数が値型 int なので、コンパイルが通ります。
二つ目の sizeof は型引数が参照型 Program なので、コンパイルエラーになります。
エラー CS0208 マネージ型 ('MyType
') のアドレスの取得、サイズの取得、またはそのマネージ型へのポインターの宣言が実行できません