如何在C#中的两个接口之间创建交集?
我正在尝试创建一个字典,它的价值是两个接口的组合 我试图做的事情如下所示:如何在C#中的两个接口之间创建交集?,c#,.net,oop,C#,.net,Oop,我正在尝试创建一个字典,它的价值是两个接口的组合 我试图做的事情如下所示: public interface IA { }; public interface IB { }; public class Test { public Dictionary<int, <IA,IB>> dict; }; 还有其他方法吗?最接近您尝试执行的构造是带有类型约束的泛型: public interface IA { }; public interface IB { }; p
public interface IA { };
public interface IB { };
public class Test {
public Dictionary<int, <IA,IB>> dict;
};
还有其他方法吗?最接近您尝试执行的构造是带有类型约束的泛型:
public interface IA { };
public interface IB { };
public class Test<T> where T : IA, IB
{
public Dictionary<int, T> dict;
};
公共接口IA{};
公共接口IB{};
公共类测试,其中T:IA,IB
{
公共词典;
};
这将强制代码用户提供实现
IA
和IB
的类型,但需要使代码具有通用性,这对于您的实际场景可能是可行的,也可能是不可行的。我认为IC
方法不能100%工作,因为类可以满足您实现IA
和IB
的实际需求,而不必实现IC
。IC是IA和IB的结合,而不是交叉点
public interface IA { };
public interface IB { };
public class Test<T> where T : IA, IB
{
public Dictionary<int, T> dict;
};