dot*_*ter 10 c# language-design .net-4.0 c#-4.0
public string Foo(object obj) {
return null;
}
public string Foo(string str) {
return null;
}
var x = Foo((dynamic) "abc");
Run Code Online (Sandbox Code Playgroud)
为什么x动态,编译器不够智能或者我错过了重要的东西?
我只是在这里猜测,但是...
当您添加强制转换时dynamic,整个表达式将变成动态表达式。动态表达式的结果总是会这样,dynamic因为一切都在运行时解决。
查看有关使用的 MSDN 页面dynamic以获取更多信息:
并滚动到以下文本:
大多数动态操作的结果本身就是动态的。