爲什麼不能像這樣使用泛型?聲明共同開型或接口和獨立的邏輯,用於直接在每個具體類型: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