タグ付けされた質問 「typeinitializer」

2
型の初期化子を見つけるとNullReferenceExceptionがスローされるのはなぜですか?
これは私を困らせました。野田タイムのためにいくつかのテストを最適化しようとしていました。そこでは、いくつかのタイプ初期化チェックを行っています。すべてをnewにロードする前に、型に型初期化子(静的コンストラクターまたは初期化子付きの静的変数)があるかどうかを確認すると思いましたAppDomain。驚いたことに、この小テストが投げたNullReferenceException-にヌル値がされていないにも関わらず、私のコード。デバッグ情報なしでコンパイルされた場合にのみ例外をスローします。 これは、問題を示すための短いが完全なプログラムです。 using System; class Test { static Test() {} static void Main() { var cctor = typeof(Test).TypeInitializer; Console.WriteLine("Got initializer? {0}", cctor != null); } } そして、コンパイルと出力のトランスクリプト: c:\Users\Jon\Test>csc Test.cs Microsoft (R) Visual C# Compiler version 4.0.30319.17626 for Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. All rights reserved. c:\Users\Jon\Test>test …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.