• .NET中的类型对象


    .NET中的任何类型,都有对应的一个类型对象。类型对象和类型实例(类型创建的一个对象)不是同一个概念。

    类型对象包含类型的静态字段和方法,当类访问静态方法静态字段,实例调用方法时就会去类型对象中查找静态字段和方法

    假设有一个类型叫Animal 那么当我们使用它之前CLR就会创建一个特殊的对象叫类型对象

    Animal a1 = new Animal();
    a1.Eat() //这里访问Eat方法,会先去Animal的类型对象中查找Eat方法,
                //如果之前还没有调用过该方法,那么会先将Eat方法编译成本机代码(已经编译过就不用了)
    Animal.Search("老虎") //这边访问静态方法,也是同上面的原理
    

    类型对象可以通过调用GetType()来访问

    通过上面我们知道相同类型的类型对象都是同一个也就是说

    new Animal().GetType()==new Animal().GetType()//true

    那么类型类型对象本身的类型对象又是什么呢,它其实是Type对象,换句话说任何对象的类型对象的类型对象都是同一个,它自己的类型对象时它本身

    new People().GetType().GetType()==new Clothes().GetType().GetType()//true
    
  • 相关阅读:
    Jenkins
    ssh 免登录
    linux 远程执行命令
    Java WEB 笔记
    如何用新安装的jdk替换掉Linux系统默认jdk
    修改 File --> New 菜单内容
    java.security.NoSuchAlgorithmException: AES KeyGenerator not available
    JDK历史版本下载地址
    maven 核心概念
    spring boot: ConfigurationProperties
  • 原文地址:https://www.cnblogs.com/fuyun2000/p/3430435.html
Copyright © 2020-2023  润新知