为什么不能像这样使用泛型?声明共同开型或接口和独立的逻辑,用于直接在每个具体类型:C#泛型类型的多态性
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>
。谢谢。
'接口IWorker其中T:IOPEN '看起来像一个魔术技巧,它没有严重的代码更改。谢谢。 –
Feofilakt