C# C | get/set变量始终返回null

C# C | get/set变量始终返回null,c#,getter-setter,C#,Getter Setter,这是公共静态类中的代码: 设置Json={};,为什么会导致NullReference异常 Setter应该为变量赋值,例如 set { json = value; Console.Write... } _json=json;将再次调用getter,它返回backing字段的旧值。因此,您当前的代码与此类似: public static string get_Json() => _json; public void set_Json(string value) =>

这是公共静态类中的代码:


设置Json={};,为什么会导致NullReference异常

Setter应该为变量赋值,例如

set {
    json = value;
    Console.Write...
}
_json=json;将再次调用getter,它返回backing字段的旧值。因此,您当前的代码与此类似:

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关键字:

您的setter应该读取_json=value;当前,您总是将属性设置为属性的当前值。用于定义集合访问器分配的值。
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; 
}
public static string Json
{
    get { return _json; }
    set { 
        _json = value;
        Console.WriteLine("Json variable was modified. Now it's value is: " + _json);
    }
}