对象中的对象为空
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);
我正在使用 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);