【问题标题】:C# How To Do Inheritance From A Generic ClassC#如何从泛型类继承
【发布时间】:2012-10-13 22:26:33
【问题描述】:

我有 A 类:

public class ClassA<T>

我在 ClassA 中有一个泛型方法:

protected TP FunctionA<TP>(Expression<Func<T, TP>> p)
{
    //Code for method here
}

ClassB 派生自 ClassA:

public class ClassB : ClassA<ClassB>

ClassC 派生自 ClassB:

public class ClassC : ClassB

当像上例那样创建 ClassC 时,ClassA 仍然会有 ClassB 的类型,因为 ClassC 派生自 ClassB,而 ClassB 将 ClassA 的类型设置为 ClassB。

我想知道的是如何从 ClassB 派生,同时将 ClassA 类型设置为 ClassC 并且 ClassB 仍然需要能够单独使用而无需派生自。

谢谢!

【问题讨论】:

标签: c#-4.0 generics inheritance types multiple-inheritance


【解决方案1】:

ClassB 不再是通用的。 C类也不是。如果你想保持通用,那么模式是:

class ClassB<T> : ClassA<T> {}
class ClassC<T> : ClassB<T> {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多