2016-10-10 60 views
0

我有deserealized参数,检查值和处理错误的初始片段:如何检查deserealized的类成员是否有价值?

var param = js.Deserialize<int?>(jqData.Params); 


if (param.HasValue) 
{ 
    resp.ReturnValue = param.Value; 
} 
else 
{ 
    //handle error code 
} 

现在,我的修改过程中,我已经改变了方法接受类参数列表,而不是为空的整数

var param = js.Deserialize<ClassName>(jqData.Params); 

现在它使.HasValue和.Value方法无效。

我的问题是:我该如何正确修改这两行,使其具有与初始if语句相同的含义?

到目前为止,我只想到切换到if (param != null),但我想不出与.Value等价。

+0

如果'ClassName'是一个类 - 它的值在'param'中。作为引用类型意味着'null'自然是可能的值之一。 – zerkms

+0

@zerkms你的意思是,整个if语句变得没有必要了? –

+0

好吧,'param'拥有对象的引用。如果它是'!= null',那么它肯定指向一个对象。 – zerkms

回答

0

只要ClassName是一个类(请参阅参考类型),您只需检查它是否不是null

如果不是 - 那么该变量将保留对您原样使用的对象的引用。