You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用C# Reflection测试.NET String类的各类元数据信息

嘿,我太懂你折腾反射测试string类时的挫败感了——刚啃了20天反射、特性这些概念,上手实操就踩坑,换谁都头大!我给你一套能直接跑通的完整代码,把你要的所有信息都拉出来,顺便拆解每个环节的逻辑,帮你搞懂之前可能卡壳的地方。

完整可运行代码

using System;
using System.Reflection;

class StringReflectionDemo
{
    static void Main()
    {
        // 获取string类型的Type对象,两种写法都靠谱,typeof更直接安全
        Type stringType = typeof(string);
        // 也可以用实例获取:Type stringType = "随便写点啥".GetType();

        // 1. 基础信息:类名 + 命名空间
        Console.WriteLine($"类名: {stringType.Name}");
        Console.WriteLine($"命名空间: {stringType.Namespace}");

        // 2. 所在程序集
        Assembly assembly = stringType.Assembly;
        Console.WriteLine($"所在程序集: {assembly.FullName}");

        // 3. 父类(直接基类)
        Type baseType = stringType.BaseType;
        Console.WriteLine($"父类: {baseType?.Name ?? "无基类"}");

        // 4. 实现的所有接口(包括继承来的)
        Console.WriteLine("\n实现的接口列表:");
        Type[] interfaces = stringType.GetInterfaces();
        foreach (Type iface in interfaces)
        {
            Console.WriteLine($"- {iface.Name}");
        }

        // 5. 类型特性判断:抽象/泛型/密封
        Console.WriteLine("\n类型特性:");
        Console.WriteLine($"是否抽象类: {stringType.IsAbstract}");
        Console.WriteLine($"是否泛型类型: {stringType.IsGenericType}");
        Console.WriteLine($"是否密封类: {stringType.IsSealed}");
    }
}

关键环节拆解(帮你避坑)

  • 获取Type对象:用typeof(string)是最稳妥的方式,不需要实例就能拿到类型信息;如果用实例的GetType(),要注意不能用null(比如((string)null).GetType()会直接抛空引用异常)。
  • 程序集信息:string在.NET Framework里属于mscorlib.dll,在.NET Core/.NET 5+里属于System.Private.CoreLib.dll,代码里用Assembly.FullName会输出完整的程序集标识(包含版本、公钥令牌等)。
  • 接口遍历:GetInterfaces()会返回所有实现的接口,包括从父类继承来的(比如string实现了IEnumerable<char>、IComparable<string>等一堆接口),直接遍历输出就行。
  • 类型特性判断:
    • IsSealed:string是密封类,所以会返回true(这也是为啥你不能继承string的原因);
    • IsAbstract和IsGenericType:string既不是抽象类也不是泛型类型,所以都是false。

之前你出错可能是没注意这些细节——比如是不是漏引用了System.Reflection命名空间?或者尝试用了错误的方法获取类型信息?把上面的代码跑一遍,应该就能得到你想要的所有结果了!

内容的提问来源于stack exchange,提问作者ravenousHydra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:47:40