【发布时间】:2019-03-21 17:43:28
【问题描述】:
我正在尝试获取一个类中所有变量的列表。我正在尝试使用反射(我以前从未使用过),但这没有意义,文档也没有帮助。我觉得我犯了一个明显的错误,但我无法弄清楚。
public override string ToString()
{
FieldInfo[] fields = GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
List<string> _return = new List<string>();
foreach (var field in fields)
{
_return.Add(field.Name + ": " + field.GetValue(field));
}
return _return;
}
输出什么都没有。
【问题讨论】:
-
我们需要minimal reproducible example 来进一步调查。
-
如果有任何字段,我希望
field.GetValue(field)会抛出异常。应该是field.GetValue(this) -
@CtrlS 谢谢,成功了!出于某种原因,那个没有出现在我的搜索中。
-
您声明了公共覆盖字符串 ToString(),但返回 List