【发布时间】:2017-08-14 04:39:15
【问题描述】:
为什么不能像这样使用泛型?直接为每个具体类型声明公共的开放类型或接口和单独的逻辑:
interface IOpen<T>
{
T A { get; }
}
class Concrete<int> : IOpen<int>
{
public int A => 42;
public string B => "42";
}
interface IWorker<T>
{
void Do(IOpen<T> item);
}
class WorkerInt : IWorker<int>
{
public void Do(Concrete<int> item)
{
Console.WriteLine(item.A);
Console.WriteLine(item.B);
}
}
如何避免上述代码中的限制?如果我创建类ConcreteInt : IOpen<int>,那么WorkerInt 将不会实现IWorker<T>。谢谢。
【问题讨论】: