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 exceptions 的 Throw 框。

于 2012-07-17T20:16:05.523 回答
0

就像您调用静态/共享方法一样:

Part.IsValidPart()

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

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

编辑

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

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

修复您的异常,如果您在附加调试器的情况下运行,您可以获得更多详细信息。

于 2012-07-17T19:50:02.717 回答