2016-10-10 2 views
0

У меня есть начальный фрагмент кода, который 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.

Если это не так, то переменная содержит ссылку на объект, который вы используете как есть.

Смежные вопросы