我只是想知道为什么传递System.Collections.Generic.List<string>到这个功能test(ICollection<object> t)将无法正常工作,我为什么不能将它传递像传递string到test2(object t)?
对我来说没什么意义!
因为ICollection它不是仅输出接口,所以它不是协变的.
考虑以下代码:
void test(ICollection<object> t)
{
t.Add(new TextBox());
}
List<string> lst;
test(lst);
Run Code Online (Sandbox Code Playgroud)
当test试图TextBox填入a 时应该发生什么List<string>?
合同ICollection<object>是任何object可以放入,并且出来的项目将始终是类型object.但List<string>只满足合同的一半.
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |