5
public void Foo<T>(Func<T> bar)
where T: IMyInterface
{
Func<IMyInterface> func = bar;
}
以來,它一直我已經明白協方差一段時間,但不應該這樣編?協方差,代表和泛型類型約束
任何bar
可以返回也是IMyInterface
。什麼似乎是問題?
public void Foo<T>(Func<T> bar)
where T: IMyInterface
{
Func<IMyInterface> func = bar;
}
以來,它一直我已經明白協方差一段時間,但不應該這樣編?協方差,代表和泛型類型約束
任何bar
可以返回也是IMyInterface
。什麼似乎是問題?
Is this a covariance bug in C# 4?
正確的代碼是:
public void Foo<T>(Func<T> bar)
where T: class, IMyInterface
{
Func<IMyInterface> func = bar;
}
是的,但我的是漂亮:d – TDaver 2012-04-16 12:47:54
這就是自動「這是一個重複」評論系統補充道。 – asawyer 2012-04-16 12:49:07