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

C#如何使用泛型从类中获取属性值

在C#中,我们可以使用反射和泛型来获取类的属性值。下面是一个示例代码,展示了如何使用泛型从类中获取属性值:

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

public class MyClass
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Program
{
    public static void Main(string[] args)
    {
        MyClass obj = new MyClass { Name = "John", Age = 25 };

        string name = GetPropertyValue<string>(obj, "Name");
        int age = GetPropertyValue<int>(obj, "Age");

        Console.WriteLine($"Name: {name}");
        Console.WriteLine($"Age: {age}");
    }

    public static T GetPropertyValue<T>(object obj, string propertyName)
    {
        Type type = obj.GetType();
        PropertyInfo propertyInfo = type.GetProperty(propertyName);
        return (T)propertyInfo.GetValue(obj);
    }
}

上述代码中,我们定义了一个MyClass类,该类有两个属性:NameAge。在Main方法中,我们创建了一个MyClass对象,并使用GetPropertyValue方法来获取属性值。

GetPropertyValue方法使用了泛型T,该泛型表示要获取的属性值的类型。它接受两个参数:一个是要获取属性值的对象obj,另一个是属性的名称propertyName

在方法内部,我们首先通过GetType方法获取obj的类型。然后,使用GetProperty方法获取指定名称的属性信息。最后,使用GetValue方法从obj中获取属性的值,并使用强制类型转换将其转换为泛型类型T

在上述示例中,我们分别获取了NameAge属性的值,并将它们打印输出。

请注意,上述示例代码中没有提及任何特定的云计算品牌商相关产品或链接。如果您对腾讯云的相关产品有进一步的了解或需求,建议查阅腾讯云官方文档或与腾讯云技术支持团队联系以获取更详细的信息。

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

相关·内容

领券