已經定義了這個接口:問題有關C#4.0的泛型協方差
public interface IInputBoxService<out T> {
bool ShowDialog();
T Result { get; }
}
爲什麼下面的代碼工作:
public class StringInputBoxService : IInputBoxService<string> {
...
}
...
IInputBoxService<object> service = new StringInputBoxService();
,這不?:
public class IntegerInputBoxService : IInputBoxService<int> {
...
}
...
IInputBoxService<object> service = new IntegerInputBoxService();
它與int是一個值類型有什麼關係?如果是的話,我怎樣才能繞過這種情況?
感謝
您是否嘗試過使用的Int32 – Strelok 2010-04-28 06:41:41
沒有,但是從我的理解這會導致同樣的int是隻是一個別名:因爲這可以很簡單? Int32。 – 2010-04-28 06:45:50