0
struct TestStruct
{        
    static TestStruct()
    {
        Console.WriteLine("TestStruct");
    }
}

静的パラメーターなしのコンストラクターが構造体で呼び出されたとき。

4

2 に答える 2

7

明示的かつ安全に呼び出すには (一度だけ、存在するかどうかを心配する必要はありません):

System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(
    type.TypeHandle);

でも:

静的パラメーターなしのコンストラクターが構造体で呼び出されたとき。

「ランタイムがいつ実行するか」という意味の場合 - 唯一の安全な答えは必要な場合です- 正確な詳細は非常に複雑で、ランタイム間で変化します。この正確なタイミングに依存するのは賢明ではありません。ただし、(たとえば) 静的フィールドにアクセスしようとする前に実行されることが保証されています。

于 2013-08-14T12:05:16.153 に答える