声明实现泛型接口的C#类

本文关键字:泛型接口 实现 声明 | 更新日期: 2023-09-27 18:01:51

假设我有一个空的接口类IBaseInterface,它只用于将实现类"标记"为接口本身。

有什么办法做这样的事吗?

例如:

public class MyClass : T where T : IBaseInterface
{
}

声明实现泛型接口的C#类

不,不能这样做,因为编译器必须知道在声明类时类实现了哪个接口。您可以使用通用参数接口,但必须指定实际接口。

不是这样的,没有。我强烈建议使用构图模式来尝试并实现你正在尝试的任何内容。作为替代方案,您可能会发现DynamicProxy(或其他一些代理解决方案(就是您想要的。

您所声明的类型甚至不是泛型。类似这样的东西:

class MyClass<T> : T where T : IBaseInterface

在某些情况下可以工作(例如,如果使用C++模板而不是.Net泛型(,但它根本不是有效的C#代码。

我不确定"标签"是用来做什么的,但一个带有属性的接口

ClassType ClassType { get; }

其中CCD_ 1是CCD_ 2可以工作的。