|
1
2
你需要区分 编译时类型 (例如,决定调用哪个方法的重载)和 运行时类型 (例如用于反射)。不管你对某个物体做了什么扭曲 一 (将其转换为基类型等)不会更改对象的运行时类型。
所以就因为你路过
如果,在里面
额外阅读:埃里克·利珀特的 Representation and Identity 一 如果您理解引用更改转换为 新的 反对。这也在上面的奖励阅读中得到了进一步的解释。 |
|
|
2
1
这就是C#的工作原理,当您使用基类型对象编译器将派生类型对象传递给具有参数的方法时,只需接受该派生对象并将其解释为基对象。
在您的情况下,您传递的是派生(
可以将派生类型强制转换为更多基类型,但另一种方法将导致
|
|
|
Michael Runzler · 动态类型化方法中的奇数型推理 8 年前 |
|
|
K.Os · Kotlin和RxJava类型推断失败 8 年前 |
|
|
Crazycolorz5 · (^)上的类型推断问题 8 年前 |
|
|
Josh Stone · Scala类型推断错误 8 年前 |
|
|
LazyHatIQ · 类型脚本类型推断、扩展语法和多类型返回 8 年前 |