我遇到了问题因为我将代码从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
答案 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的方法而不创建实例。
您应该创建一个实例来运行您的方法: