gpt4 book ai didi

c# - 动态列出对象的内容

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

有两种对象:

public class Toto
{
String test1 = "";
int test2 = 0;
}

public class Titi
{
String testA = "";
int testB = 0;
}

我将创建一个允许我动态检查任何对象内容的方法。例如 :
public void checkDatas(Object o)

在这种方法中,我将访问 test1 并检查它的值,然后是 test2,然后是 testA 和 testB。像这样 (Object) Object.getMember(new Toto(), "test1")

我在反射过程中找到了一些解释,但没有任何效果。

有人有想法吗?

提前致谢。

最佳答案

您可以使用反射来读取(未知)对象的成员,例如:

public class Toto
{
String test1 = "aaa";
int test2 = 0;
}

// -------------

Toto t = new Toto();

var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
foreach (FieldInfo field in t.GetType().GetFields(flags))
{
Console.WriteLine(field.Name + " : " + field.GetValue(t));
}

这会产生以下输出:
test1 : aaa
test2 : 0

注意:如果您的类有私有(private)字段,那么您必须指定正确的 BindingFlags调用 Type.GetFields()时,如上图。

关于c# - 动态列出对象的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203959/

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