0

私は次のVB.NETコードを持っています:

Namespace Data 
    Public Module Part
        Public function IsValidPart() 
        End Function
    End Module
End NameSpace

では、モジュールでIsValidPartメソッドを呼び出すにはどうすればよいですか?Partメソッドを呼び出そうとすると、次のエラーが発生します。

'MyCompany.Lender.Data.Part'の型初期化子が例外をスローしました。---> System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

4

2 に答える 2

3

問題のコードがスニペットにありません。モジュール内の変数の初期化が原因です。このような問題の簡単な例は次のとおりです。

Module Module1
    Public Example As String = Nothing.ToString()

    Sub Main()
    End Sub
End Module

モジュールの静的コンストラクターが実行されると、説明のない TypeInitializationException が発生します。これは、 Example変数が確実に初期化されるようにコンパイラが生成するコードです。残念ながら、デバッガーはこれに対する適切な診断を表示しません。

Debug + Exceptions で問題のステートメントを見つけることができます。CLR 例外の Thrown ボックスにチェックマークを付けます。

于 2012-07-17T20:16:05.523 に答える
0

静的/共有メソッドを呼び出すように:

Part.IsValidPart()

モジュール内のすべてのメンバーは共有/静的です。

次のエラーが発生します:「MyCompany.Lender.Data.Part」の型初期化子

編集

モジュールにNull参照例外をスローしているSub Newがあります。

Sub New()
    'An exception is being thrown somewhere in here
End Sub

例外を修正します。デバッガーを接続して実行すると、詳細を取得できます。

于 2012-07-17T19:50:02.717 に答える