首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#反射-从基类中获取超类的泛型参数类型

C#反射是一种强大的编程技术,它允许开发人员在运行时动态地获取和操作类型的信息。C#反射可以用于从基类中获取超类的泛型参数类型。

泛型是C#中的一种强大的特性,它允许我们编写可以在不同类型上工作的可重用代码。在某些情况下,我们可能需要在运行时获取泛型类型的参数类型,以便根据参数类型执行特定的操作。

要从基类中获取超类的泛型参数类型,可以使用C#反射中的Type类和MethodInfo类。下面是一个示例代码:

代码语言:txt
复制
using System;
using System.Reflection;

public class BaseClass<T>
{
    public void PrintGenericType()
    {
        Console.WriteLine(typeof(T));
    }
}

public class DerivedClass : BaseClass<int>
{
}

public class Program
{
    public static void Main()
    {
        Type baseType = typeof(DerivedClass).BaseType;
        Type genericArgument = baseType.GetGenericArguments()[0];
        Console.WriteLine(genericArgument);
    }
}

在上面的示例代码中,我们定义了一个基类BaseClass<T>,其中T是泛型参数类型。然后,我们定义了一个派生类DerivedClass,它继承自基类并指定了int作为泛型参数类型。

Main方法中,我们首先使用typeof(DerivedClass).BaseType获取派生类的基类类型。然后,我们使用GetGenericArguments()方法获取基类的泛型参数类型数组,并通过索引[0]获取第一个泛型参数类型。最后,我们将泛型参数类型打印到控制台。

这样,我们就可以通过C#反射从基类中获取超类的泛型参数类型。

推荐的腾讯云相关产品:腾讯云函数(Serverless云函数计算服务),腾讯云API网关(API网关服务),腾讯云容器服务(容器化部署和管理服务)。

腾讯云函数(Serverless云函数计算服务):https://cloud.tencent.com/product/scf

腾讯云API网关(API网关服务):https://cloud.tencent.com/product/apigateway

腾讯云容器服务(容器化部署和管理服务):https://cloud.tencent.com/product/ccs

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

13分47秒

day28_反射/24-尚硅谷-Java语言高级-获取运行时类的父类及父类的泛型

13分47秒

day28_反射/24-尚硅谷-Java语言高级-获取运行时类的父类及父类的泛型

13分47秒

day28_反射/24-尚硅谷-Java语言高级-获取运行时类的父类及父类的泛型

领券