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

C#中属性Getter返回NULL问题求助

解决Getter访问属性返回NULL的问题

我来帮你揪出这个问题的根源——你遇到的Getter返回NULL的情况,核心是自动实现的属性和你手动定义的字段完全是两个独立的实体,根本没有关联!

先看你写的HTProvince类代码:

public string provinceCode;
public string ProvinceCode { get; set; }

这里的provinceCode是你手动声明的公共字段,而ProvinceCode是C#的自动实现属性——编译器会为这个自动属性偷偷生成一个私有字段(比如_ProvinceCode),这个生成的字段和你自己写的provinceCode半毛钱关系都没有。

所以如果你的HTGetProvinces()方法里,只是给provinceCode字段赋值,那ProvinceCode属性的Getter自然拿不到任何值,只能返回NULL。

两种解决办法:

  • 方法一:丢弃手动字段,直接用自动属性
    删掉多余的provinceCode字段,确保在HTGetProvinces()里给自动属性赋值:

    public class HTProvince
    {
        public string ProvinceCode { get; set; }
    
        public static List<HTProvince> HTGetProvinces()
        {
            // 示例赋值逻辑,务必给ProvinceCode属性赋值
            var provinces = new List<HTProvince>();
            // 假设这里是从数据库/接口获取数据的逻辑
            provinces.Add(new HTProvince { ProvinceCode = "110000" });
            provinces.Add(new HTProvince { ProvinceCode = "120000" });
            return provinces;
        }
    }
    
  • 方法二:手动关联字段和属性
    如果一定要保留provinceCode字段,就把属性改成手动实现,让它的Getter/Setter直接操作你定义的字段:

    public class HTProvince
    {
        public string provinceCode;
        public string ProvinceCode 
        { 
            get { return provinceCode; } 
            set { provinceCode = value; } 
        }
    
        // 此时在HTGetProvinces里给provinceCode字段赋值,属性就能正确返回值了
    }
    

最后再确认下HTGetProvinces()里的赋值逻辑:不管用哪种方案,都要保证赋值的目标是属性本身,或者是和属性关联的字段,别再给独立的字段赋值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:24:05