如何在VB.NET模块中调用方法

时间:2012-07-17 19:47:48

标签: vb.net

我有以下VB.NET代码:

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

现在,如何调用IsValidPart模块中的Part方法?当我尝试调用该方法时,出现以下错误:

  

'MyCompany.Lender.Data.Part'的类型初始化程序引发了一个   例外。 ---> System.NullReferenceException:不是对象引用   设置为对象的实例..

2 个答案:

答案 0 :(得分:3)

问题代码不在您的代码段中。它是由模块中变量的初始化引起的。这个问题的一个简单例子是:

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

    Sub Main()
    End Sub
End Module

当模块的静态构造函数运行时,您会得到一个非描述性的TypeInitializationException。编译器生成的代码是确保 Example 变量初始化的代码。不幸的是,调试器没有显示出良好的诊断功能。

您可以使用Debug + Exceptions找到问题陈述,勾选CLR异常的Thrown框。

答案 1 :(得分:0)

就像你会称之为静态/共享方法:

Part.IsValidPart()

模块中的所有成员都是共享/静态的。

  

我收到以下错误:'MyCompany.Lender.Data.Part'的类型初始化程序

修改

你的模块中有一个Sub New抛出空引用异常:

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

修复您的异常,如果您使用附加的调试器运行,则可以获得更多详细信息。