C#获取类型的方法

在C#中,有多种方式可以获取类型,下面为你详细介绍常见的几种方法及其使用场景。

1.使用 typeof()运算符

用途:获取编译时已知类型的 Type 对象。

语法:typeof(TypeName),其中 TypeName 是具体的类型名。

示例:Type intType = typeof(int);     //获取int类型信息

​           Console.WriteLine(intType);      //返回类型System.类型

特点:typeof运算符是在编译时确定类型的,它直接返回指定类型的 System.Type 对象。使用于在代码中明确知道要获取的类型名称的情况。

  • 仅适用于静态类型(如基本类型、类名)

  • 如果类型不存在,编译时会报错


    2.使用对象的 GetType()方法

    用途:获取对象运行时的实际类型。

    语法:objectInstance.GetType(),其中 objectInstance 是对象的实例。

    示例:object obj = "Hello";

    Type bojType = obj.GetType();  //返回 System.String 的类型信息。

    Console.WriteLine(obj.GetType()); //返回 System.String 的类型信息。

    特点:GetType 方法是一个实例方法,用于在运行时获取对象的实际类型。当你只有对象的实例,而不知道其具体类型时,可以使用该方法。

    • 需要对象实例(不能用于静态类型)

    • 如果对象位 Null,调用 GetType() 会抛出 NullReferenceException


      3.使用 Type.GetType()方法

      用途:通过类型名称字符串获取类型信息。

      语法:Type.GetType(string typeName,bool throwOnErroe = false,bool ignoreCase = false),其中 typeName是类型名称。

      示例:string intTypeName = typeof(int).FullName; //获取int类型的名称

      ​           Type intType = Type.GetType(intTypeName);//根据类型名称获取类型

      特点:Type.GetType 方法允许根据类型的名称(字符串形式)来获取对应的 System.Type 对象,适用于在运行时根据动态输入的类型名称来获取类型的场景。该方法还可以指定是否抛出异常以及是否执行区分大小写的搜索。

      • 需要类型的完全限定名(包括命名空间)

      • 如果类型不存在或未加载到当前程序域,返回 null

      • 需处理异常或空值检查


      总结


      方法适用场景注意事项
      typeof(T)编译时已知类型静态类型,编译时检查
      obj.GetType()运行时动态获取对象类型需要实例,避免 null 调用
      Type.GetType("T")通过字符串动态获取类型需处理 null 或异常
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

        当前余额3.43前往充值 >
        需支付:10.00
        成就一亿技术人!
        领取后你会自动成为博主和红包主的粉丝 规则
        hope_wisdom
        发出的红包
        实付
        使用余额支付
        点击重新获取
        扫码支付
        钱包余额 0

        抵扣说明:

        1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
        2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

        余额充值