我有三个类,CarAdd,Car和EntityObject。 CarAdd调用EntityObject中的方法,但没有立即访问它们的权限。而是创建一个Car类型的对象,并使用它来调用方法。问题在于,无法实例化EntityObject,所以Car类有没有办法在没有对象的情况下调用EntityObject的方法?
我尝试将“共享”功能包括在方法标题中,但是由于该功能实现了某些功能,因此我无法成功完成此操作。
'This executes when a button is pressed on the UI. _mCar is an object of type 'Car
'In class CarAdd
Public Sub BeginEdit()
If _mCar IsNot Nothing Then _mCar.BeginEdit()
End Sub
'This is the code I added to try and make this work. Since EO is nothing, 'though, the if statement never executes.
'In class Car
Private EO As EntityObject
Public Sub BeginEdit()
If EO IsNot Nothing Then
Call EO.BeginEdit()
End If
End Sub
'This is the method that I want to execute
'In class EntityObject
Public Sub BeginEdit() Implements System.ComponentModel.IEditableObject.BeginEdit
If Not _blnIsEditing Then
_blnIsEditing = True
_OriginalObject = TryCast(Me.MemberwiseClone(), EntityObject)
End If
End Sub
我曾希望方法调用从本质上讲会流过Car类并流到EntityObject类,但这不是正在发生的事情。相反,Car类中的if语句永远不会执行,因此永远不会调用该方法。
答案 0 :(得分:2)
否,如果Sub
/ Function
不是Shared
({{1}中的BeginEdit
不是Shared
)则不是。根据定义,非EntityObject
Shared
或Sub
是特定于实例的,只能通过实例使用。
有关共享/非共享班级成员here的更多信息。