【发布时间】:2009-03-04 07:48:07
【问题描述】:
最近我在 c# 中发现了一个非常令人惊讶的行为。
我有一个将IEnumerable<Object> 作为参数的方法,我正在传递
IEnumerable<string> 但这是不可能的。
而在 c# 中,一切都可以向上转换为 Object,而不是为什么这是不可能的?
这对我来说完全令人困惑。
请有人在这个问题上澄清我。
【问题讨论】:
-
怎么不可能?它会抛出 ArgumentException 吗?此外,如果要将通用 IEnumerable 声明为 Object,那么使用它有什么意义?
标签: c# covariance contravariance