美文网首页
4.动态类型与反射

4.动态类型与反射

作者: 墨弄笔 | 来源:发表于2019-03-24 09:38 被阅读0次

简述DLR。

  • DLR全称Dynamic Language Runtime,即动态语言运行时。
  • DLR是添加到CLR的一系列服务,它允许添加动态语言,使C#具备动态类型的功能。
  • DLR允许动态语言在运行时发现类型,而不进行编译时检查。

dynamic和var两者之间有什么不同?

  • dynamic是动态类型,其定义变量的数据类型是在运行时决定的,可以多次改变。
  • var是类型推断关键字,其定义变量的数据类型是在编译时决定的,一旦确定就无法再改变。
  • dynamic可以在类中的任意位置声明使用,而var只能在方法内部使用。

创建自定义的动态对象有哪些途径,它们之间有什么区别?

  • 有两种方式可以创建自定义的动态对象:从DynamicObject类中派生;使用ExpandoObject
  • 它们的区别在于:使用DynamicObject需要做的工作比较多,因为必须重写几个方法,而ExpandoObject是一个可立即使用的密封类。

简述反射的概念。

  • 反射就是从一个对象的外部去了解对象内部的构造。
  • 反射也是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。

有几种方式可以获取类型的引用,分别描述一下。

  1. 使用C#typeof运算符,这个运算符的参数是类型的名称。
  2. 使用GetType()方法,所有类都会从System.Object继承这个方法。
  3. 使用Type的静态方法GetType()获取指定类型的引用。

什么是“晚期绑定”?

  • 晚期绑定是一种创建一个给定类型的实例并在运行时调用其成员,而不需要在编译时知道他存在的一种技术。

相关文章

  • 4.动态类型与反射

    简述DLR。 DLR全称Dynamic Language Runtime,即动态语言运行时。 DLR是添加到CLR...

  • 2018-08-10 反射

    1.简介 反射 提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现...

  • 2019-12-17,反射

    反射提供描述程序集、模块和类型的对象(Type 类型)。可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或...

  • Java面试总结:Java基础篇(2)

    1.反射与动态代理 反射:反射是java提供的一种机制,可以让我们在运行时期获得某个对象的类型,获取类声明的属性和...

  • 反射与动态代理原理

    反射与动态代理原理 1 关于反射 反射最大的作用之一就在于我们可以不在编译时知道某个对象的类型,而在运行时通过提供...

  • Java知识梳理二

    一、反射与动态代理 1.反射 反射最大的作用之一就在于我们可以不在编译时知道某个对象的类型,而在运行时通过提...

  • Java的动态机制---反射

    反射机制 动态语言,程序运行时可改变程序结构或变量类型Python、ruby。运行时可以动态的改变结构。利用反射机...

  • Swift底层进阶--008:Mirror反射 & 错误处理

    Mirror反射 Mirror(反射):可以动态获取类型、成员信息,在运⾏时可以调⽤⽅法、属性等⾏为的特性。对于⼀...

  • 反射 Mirror | Swift 动态性

    Mirror是Swift中的反射机制,反射就是可以动态的获取类型以及成员信息,同时也可以在运行时动态的调用方法和属...

  • Go笔记-Chap10 反射

    10.1 类型 反射让我们能在运行期探知对象的类型信息和内存结构,从而弥补静态语言在动态行为上的不足。反射还是实现...

网友评论

      本文标题:4.动态类型与反射

      本文链接:https://www.haomeiwen.com/subject/kpmyvqtx.html