声明实现泛型接口的C#类
本文关键字:泛型接口 实现 声明 | 更新日期: 2023-09-27 18:01:51
假设我有一个空的接口类IBaseInterface,它只用于将实现类"标记"为接口本身。
有什么办法做这样的事吗?
例如:
public class MyClass : T where T : IBaseInterface
{
}
不,不能这样做,因为编译器必须知道在声明类时类实现了哪个接口。您可以使用通用参数来接口,但必须指定实际接口。
不是这样的,没有。我强烈建议使用构图模式来尝试并实现你正在尝试的任何内容。作为替代方案,您可能会发现DynamicProxy(或其他一些代理解决方案(就是您想要的。
您所声明的类型甚至不是泛型。类似这样的东西:
class MyClass<T> : T where T : IBaseInterface
在某些情况下可以工作(例如,如果使用C++模板而不是.Net泛型(,但它根本不是有效的C#代码。
我不确定"标签"是用来做什么的,但一个带有属性的接口
ClassType ClassType { get; }
其中CCD_ 1是CCD_ 2可以工作的。