遍历类c#

时间:2019-03-21 17:43:28

标签: c# string class

我正在尝试获取类中所有变量的列表。我正在尝试使用反射(我以前从未使用过反射),但这只是没有意义,而且文档也没有帮助。我觉得自己犯了一个明显的错误,但我无法弄清楚。

        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;
        }

输出为空。

1 个答案:

答案 0 :(得分:2)

这将满足您的需求:

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(this));
          }
    return string.Join(",", _return);
}