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

本文关键字:属性 泛型类型 实现 许实现 | 更新日期: 2023-09-27 18:18:45

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

如果我有一个属性叫MyCustomAttribute…我想这样写:

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

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

感谢编辑:

我的意思是这样实现的:

[MyCustomAttribute]
public class SomeOtherClass
{
}

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

如果你正在寻找通用参数约束,这将要求类型参数与某些属性标记,那么这是不可能的。

这里是可能的约束列表:类型参数的约束(c#编程指南)。您可以为类型参数

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