You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何通过foreach循环遍历对象字段并输出字段实际存储值

可以实现,只需做少量调整即可。

问题原因

你当前代码直接输出FieldInfo实例,该类的默认ToString()实现返回的是「字段类型+字段名称」,所以得到了你现在的输出结果。要获取字段存储的实际值,调用FieldInfo的GetValue()方法传入目标对象实例即可。

修改后完整代码

using System;
using System.Reflection; // 必须引入该命名空间才能使用FieldInfo

class Address
{
    public string? Building;
    public string? Street=string.Empty;
    public string? City=string.Empty;
    public string? Region=string.Empty;
}
class Program
{
    static void Main(string[] args)
    {
        Address address=new Address();
        address.Building="C5";
        address.Street=null;
        address.City="London";
        address.Region="Camden";  
        foreach (FieldInfo field in address.GetType().GetFields())
        {
            // 调用GetValue方法获取address实例上该字段的实际值
            Console.WriteLine(field.GetValue(address));
        }
    }
}

运行输出

C5

London
Camden

和你期望的结果完全一致,其中Street字段赋值为null,Console.WriteLine输出null时会自动打印空行。


内容的提问来源于stack exchange,提问作者Frank_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:24:01