2016-01-08 228 views
2

我使用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),並且該對象下的兩個項目不顯示。

這是怎麼發生的?

+0

所以它不存在 – scrappedcola

+0

你需要分配一個新的你還沒有創建一個卷對象的實例'音量「對象到」值「。 – juharr

+0

你能展示你的json嗎? – RredCat

回答

5

您需要初始化「值」。

此構造函數添加到您的sendRequest將類:

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

您可以在此點方法使用object initializers

var _req = new SendRequest() 
{ 
    value = new Volume() 
    { 
     mute = false, 
     level = 50, 
    }, 
}; 
-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); 
+0

來吧投票是什麼問題。這工作。 – Paparazzi

+0

這是如何解決問題的? – dotctor

+0

@dotctor變量在初始化之前爲空。所以我需要用體積拼出來? – Paparazzi