以下の内容はhttps://rksoftware.hatenablog.com/entry/2019/11/04/153154より取得しました。


C# 8 の確認 - 構築されたアンマネージド型

今回は 構築されたアンマネージド型 です。

公式はこちら

このブログでの目次?はこちら

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') のアドレスの取得、サイズの取得、またはそのマネージ型へのポインターの宣言が実行できません




以上の内容はhttps://rksoftware.hatenablog.com/entry/2019/11/04/153154より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14