次のシナリオを検討してください。
Class Class1
Function Func() as String
End Function
End Class
Class Class2
Function Func() as String
End Function
Function Func2() as String
End Function
End Class
Class Class3
Function GetClassObject as Object
If (certain condition meets)
return new Class1();
Else
return new Class2();
End If
End Function
Main()
Object obj1 = GetClassObject();
obj1.Func(); // Error: obj1.Func() is not defined:
End Main
End Class
質問: 何らかの理由で Class1 と Class2 を共通の Interface クラスから継承できないという条件で、obj1.Func() にアクセスするにはどうすればよいですか?
ありがとうございました
更新: この問題に対処するために私が使用し、失敗した 1 つのアプローチは次のとおりです。
Interface ICommon
Function Func() as string
End Interface
Class Class3
...
Main()
Dim obj1 as ICommon = TryCast(GetClassObject(), ICommon); //Error: obj1 is "Nothing"
obj1.Func()
or simply:
TryCast(GetClassObject(), ICommon).Func() //Error: obj1 is Nothing
End Main
...
End Class