对象中的对象为空

Object within an object is null

我正在使用 C# 并创建了一个要发送到 JSON 服务的对象,如下所示:

public class SendRequest
{
    public string id { get; set; }
    public string case { get; set; }
    public string method { get; set; }
    public Volume value { get; set; } 
}

public class Volume
{
    public int level;
    public bool mute;
}

我可以在设置子对象时代码提示:

var _req = new SendRequest();
_req.value.mute = false;
_req.value.level = 50;

但是当程序为运行时,子对象本身为null(_req.value = null)并且该对象下的两个项目不显示。

为什么会这样?

您需要将 "value" 初始化为某些内容。

将此构造函数添加到您的 SendRequest class:

public SendRequest(){ value = new Volume(); }

您可以使用object initializers

var _req = new SendRequest()
{
    value = new Volume()
    {
        mute = false,
        level = 50,
    },
}; 

此时方法为空

public string method { get; set; }

更长,但你可以做的是

private string method = string.empty;
public string Method { get {return method;} set {method = value;} }

value 只是一个糟糕的名字

private Volume volume = new Volume();
public Volume Volume { get {return volume;} set {volume = value;} }

volume = new Volume (mute = false, value.level = 50);