相同在“CLR via C#”一书中提到动态关键字对应的FCL类型是System.Object。请澄清这一点。动态与对象
Q
动态与对象
3
A
回答
5
这不从的C#的角度来看,在所有的同样的事情......但在编译的代码,一个变量声明为类型dynamic
通常(可能总是)与CLR领域或类型的局部变量对应object
。
C#编译器负责确保使用该值的任何源代码都具有对其应用的动态行为。 object
只是表示用于存储的编译器。它也适用于[Dynamic]
属性,以便其他代码知道它将被动态处理。
例如,考虑一下:
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
本身ty应该是动态绑定的。
2
相关问题
- 1. 动态与对象类型
- 2. 动态对象
- 3. JPA /休眠与动态对象模型
- 4. 对象池与动态分配
- 5. Elasticsearch映射与动态密钥对象
- 6. ValueInjector与动态代理对象
- 7. Java方法与动态对象
- 8. 动态拉姆达与对象
- 9. Haxe Starling对象池与动态对象类型
- 10. 自定义微调器与动态对象和动态图标
- 11. REST对象为半动态.net对象
- 12. 从动态对象创建对象
- 13. 动态获取动态对象的值
- 14. 将动态值赋给动态对象
- 15. 静态对象与Visual Studio
- 16. Golang静态与对象的动态绑定
- 17. 创建动态JavaScript对象
- 18. 动态创建对象
- 19. 动态3D对象建模
- 20. 对象数组动态
- 21. Silverlight VB AddHandler动态对象
- 22. 嵌套动态对象
- 23. JSON.Net获取动态对象
- 24. StringTemplate的.NET动态对象
- 25. 动态填充javascript对象
- 26. 动态xml到Java对象?
- 27. 绑定动态对象wpf
- 28. 动态创建JavaScript对象?
- 29. 选择对象动态
- 30. 访问JavaScript对象动态