微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# | get/set 变量总是返回 null

如何解决C# | get/set 变量总是返回 null

这是 public static 类中的代码

public static string _json { get; set; }

public static string Json
{
    get { return _json; }
    set { 
        _json = Json;
        Console.WriteLine("Json variable was modified. Now it's value is: " + _json);
    }
}

为什么在设置 Json = "{}"; 时会导致 NullReference 异常?

解决方法

_json = Json; 将再次调用 getter,它返回支持字段的(旧)值。所以你当前的代码类似于:

public static string get_Json() => _json;
public void set_Json(string value) => 
{
    var newValue = get_Json(); // here _json just returns the old value
    // you don´t use the provided value here
    _json = newValue; 
}

您需要使用 value 关键字:

public static string Json
{
    get { return _json; }
    set { 
        _json = value;
        Console.WriteLine("Json variable was modified. Now it's value is: " + _json);
    }
}
,

Setter 应该给变量赋值,例如

set {
    json = value;
    Console.Write...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。