.NET继承/接口

时间:2015-11-30 13:55:52

标签: .net vb.net inheritance

如何访问Generic Method中的继承属性?

Public Sub DoSomething(Of BusObjectType)(MyBusObject As BusObjectType)

    MyBusObject.Property1 = "Something"

End Sub

Property1继承自基类。我没有界面,只是我所有业务对象的基类。

2 个答案:

答案 0 :(得分:2)

您可以在通用定义中添加As BaseClassName,以确保它的基本类型是什么。

例如:

Public Sub DoSomething(Of BusObjectType As BaseClassName)(MyBusObject As BusObjectType)

    MyBusObject.Property1 = "Something"

End Sub

有关详细信息,请参阅此处(“约束”部分):https://msdn.microsoft.com/en-us/library/w256ka79.aspx

答案 1 :(得分:1)

如果这是所有,那么该方法不需要是通用的:

Public Sub DoSomething(MyBusObject As {base class})

    MyBusObject.Property1 = "Something"

End Sub

如果您返回值并希望正确键入它,或者调用另一个需要特定类型的泛型方法,则只需要使其成为通用的。您可以将派生类作为类型作为基类的参数传递。

例如:

Public Sub Feed(pet As Animal)

    // feed the pet

End Sub

您可以传递DogCatFerret(如果这是您的事情)。您不需要为每种宠物类型使用不同的方法或使方法通用。