gpt4 book ai didi

c# - 访问未知类型的所有属性

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:46 24 4
gpt4 key购买 nike

在我的 WinForm 上,我想根据对象的类型在运行时显示每个属性(作为标签)及其值。像这样:

public void ShowDetails(object anyType)
{
// Generate label per property and show value of the property against a label.
}

我怎样才能做到这一点?有 100 多个具有不同属性的类。

我正在使用 C# 4.0。

最佳答案

你使用反射。

PropertyInfo[] properties = obj.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object propertyValue = property.GetValue(obj, null);
}

这应该足以让您入门。

您还可以从 PropertyInfo 中获取许多其他信息,例如属性名称、类型、可访问性等。请注意,有可能(但很少见)有一个没有 setter/getter 的属性,因此您可能需要先检查一下。您还可能希望只获取公共(public) 属性,而不是所有 属性。您可能还想检查该属性是否为索引器,因为它需要为 GetValue 的第二个参数设置一个非空值。哦,你也会得到返回的静态属性;你可能想要也可能不想要那些。

关于c# - 访问未知类型的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com