c# – 动态与Object相同
发布时间:2020-12-16 01:40:25 所属栏目:百科 来源:网络整理
导读:在“CLR via C#”一书中提到动态关键字对应的FCL类型是System.Object.请澄清一下. 解决方法 从C#的角度来看,它不是一回事……但是在编译的代码中,声明为动态类型的变量通常(可能总是)与CLR字段或对象类型的局部变量对应. C#编译器负责确保使用该值的任何源代
在“CLR via C#”一书中提到动态关键字对应的FCL类型是System.Object.请澄清一下.
解决方法
从C#的角度来看,它不是一回事……但是在编译的代码中,声明为动态类型的变量通常(可能总是)与CLR字段或对象类型的局部变量对应.
C#编译器负责确保使用该值的任何源代码都应用了动态行为. object只是表示用于存储的编译器.它还适用于适用的 例如,考虑一下: public class Foo { public dynamic someField; } 我相信将编译成IL相当于: public class Foo { [Dynamic] public object someField; } 现在,如果你写: Foo foo = new Foo(); foo.someField = "hello"; Console.WriteLine(foo.someField.Length); 编译器使用该属性来知道foo.someField是动态的,因此应该动态绑定Length属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |