类型参数的约束 - 其中T:class

时间:2014-03-31 21:34:38

标签: c# generics constraints

我有约束的问题,因为我想,类型参数是一个引用类型只是3个类中的一个,而不是任何其他类,因此约束“其中L:class”不正常。

以下是示例:

public class MyClass <L> 
        where L : Circle
        where L: Rectangle
        where L: Triangle

这意味着必须遵守所有限制。不幸的是,我还没有找到答案。

非常感谢。

1 个答案:

答案 0 :(得分:6)

您应该创建CircleRectangleTriangle继承自的基类或接口。

例如:

interface IShape
{
}

class Circle : IShape
{
    // ...
}

class Rectangle : IShape
{
    // ...
}

class Triangle : IShape
{
    // ...
}

然后对IShape

进行约束
public class MyClass <L> 
    where L : IShape