2012-07-17 59 views
0

內法,我有以下VB.NET代碼:如何調用VB.NET模塊

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

現在,我怎麼叫IsValidPart方法Part模塊?當我嘗試調用該方法,我得到以下錯誤:

The type initializer for 'MyCompany.Lender.Data.Part' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object..

回答

3

問題代碼不在您的代碼片段中。它是由模塊中的變量的初始化引起的。這樣的問題的一個簡單的例子是:

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

    Sub Main() 
    End Sub 
End Module 

你得到一個非描述TypeInitializationException時爲模塊運行的靜態構造函數。這是編譯器生成的代碼,用於確保示例變量被初始化。不幸的是,調試器並沒有顯示出一個好的診斷。

您可以使用Debug + Exceptions查找問題語句,在CLR例外中選中Thrown框。

+0

你是對的! – azamsharp 2012-07-17 20:25:51

0

你一樣會和調用靜態/共享方法:

Part.IsValidPart() 

模塊中的所有成員都共享/靜態的。

I get the following error: The type initializer for 'MyCompany.Lender.Data.Part'

編輯

你有你的模塊中的Sub New被拋出一個空引用異常:

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

解決您的例外,如果你運行,你可以得到更多的細節附加一個調試器。

+0

請參閱錯誤消息的更新問題。我完全按照您的實施方式調用該方法。 – azamsharp 2012-07-17 19:59:02

+0

@azamsharp查看更新。 – vcsjones 2012-07-17 20:06:44

+0

我已經檢查過這個文件,並且沒有新的小組。它仍然拋出nullReferenceException。 – azamsharp 2012-07-17 20:18:52