只允许实现属性的泛型类型
本文关键字:属性 泛型类型 实现 许实现 | 更新日期: 2023-09-27 18:18:45
是否可以将泛型类型限制为实现特定属性的类?
如果我有一个属性叫MyCustomAttribute…我想这样写:
public class SomeRandomClass<T>
where T : MyCustomAttribute
{
}
,但T不是MyCustomAttribute的派生类,而是实现该属性的类。
感谢编辑:我的意思是这样实现的:
[MyCustomAttribute]
public class SomeOtherClass
{
}
如果你正在寻找通用参数约束,这将要求类型参数与某些属性标记,那么这是不可能的。
这里是可能的约束列表:类型参数的约束(c#编程指南)。您可以为类型参数
添加以下六个约束- 为值类型
- 为参考类型
- 有一个公共的无参数构造函数
- 是或派生自指定基类
- 实现指定接口
- 是或派生自其他参数