我有以下VB.NET代码:
Namespace Data
Public Module Part
Public function IsValidPart()
End Function
End Module
End NameSpace
现在,如何调用IsValidPart
模块中的Part
方法?当我尝试调用该方法时,出现以下错误:
'MyCompany.Lender.Data.Part'的类型初始化程序引发了一个 例外。 ---> System.NullReferenceException:不是对象引用 设置为对象的实例..
答案 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
修复您的异常,如果您使用附加的调试器运行,则可以获得更多详细信息。