对象内的对象为null

时间:2016-01-08 19:27:37

标签: c# .net nested

我使用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;

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

为什么会这样?

3 个答案:

答案 0 :(得分:5)

您需要将“值”初始化为某种东西。

将此构造函数添加到SendRequest类:

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

答案 1 :(得分:2)

您可以使用object initializers

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

答案 2 :(得分:-1)

此时方法为空

public string method { get; set; }

更长但你可以做的是

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

值只是一个坏名称

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

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