仅允许实现属性的泛型类型

时间:2014-08-20 11:04:14

标签: c# generics custom-attributes

是否可以将泛型类型限制为实现特定属性的类?

如果我有一个名为MyCustomAttribute的属性...我想写这样的东西:

public class SomeRandomClass<T>
    where T : MyCustomAttribute
{
}

但不是T是MyCustomAttribute的派生类,而是实现该属性的类。

由于

编辑:

我的意思是这样实现:

[MyCustomAttribute]
public class SomeOtherClass
{
}

1 个答案:

答案 0 :(得分:0)

如果您正在寻找通用参数约束,这将要求使用某个属性标记类型参数,那么它就不可能。

以下是可能的约束列表:Constraints on Type Parameters (C# Programming Guide)。您可以为类型参数

添加以下六个约束
  1. 是一个值类型
  2. 是参考类型
  3. 拥有一个公共无参数构造函数
  4. 是或来自指定的基类
  5. 实现指定的接口
  6. 是或来自其他论点