无共享成员需要对象引用

时间:2013-05-14 08:23:58

标签: vb.net

我遇到了问题因为我将代码从vb6更改为.net而我似乎无法解决我遇到的这个问题。请协助。

我收到的错误消息:

Error 5 Reference to a non-shared member requires an object reference.

这在代码中发生了很多地方。这是我的代码。问题在于它说的是FrmInvItem.Inv。

选项严格关闭 选项明确的  公共类ClsInv

Public Function RunProcess(ByVal ConnectStr As String, ByRef Parstr As String) As Integer
    Dim frmInvIt As frmInvItem
    RunProcess = frmInvItem.Inv(ConnectStr, Parstr)
    frmInvIt.Close()
End Function

2 个答案:

答案 0 :(得分:1)

我认为Inv不是共享的,但是你在没有它所在类的实例的情况下调用它。因此,您必须将其设为shared或创建frmInvItem的实例:

Dim frmInvIt As New frmInvItem() ' create instance
RunProcess = frmInvIt.Inv(ConnectStr, Parstr) ' use it on this instance

frmInvItem是类,只有方法为shared时才可以通过classname调用方法。

  

Shared过程是与a无关的类方法   一个类的特定实例。例如,定义了Cos方法   在Math类中是一个共享方法。你可以打电话给共享   程序作为对象的方法或直接来自类。

答案 1 :(得分:0)

您正在frmInvIt上运行名为Inv的方法而不创建实例。

您应该创建一个实例来运行您的方法:

http://msdn.microsoft.com/en-us/library/77s47661.aspx