Эквивалентная функция Excel IsError в C # - PullRequest
1 голос
/ 03 октября 2019

Есть ли в c # функция, которая может помочь проверить, будет ли инструкция возвращать ошибку.

Мне известно о try{} catch{}, но мы не можем использовать ее при проверке состояния. Например:

var opertionResult = SomeRestFunction.Trigger();
string ServerResponse = if(operationResult != null)
{
    if(operationResult.Response != null)
    {
        operationResult.Response.ResponseText;
    }
    Else
    {
        "Null";
    }
}
Else
{ "Null"; }

В приведенном выше примере мне нужно выполнить несколько проверок для проверки свойств объекта operationResult на нескольких уровнях из-за вложенных в него объектов, чтобы определить окончательное значение, которое я хочу прочитатьи использовать в качестве значения ответа сервера.

Если у нас есть что-то вроде IsError() функции в Excel, мы можем просто попытаться прочитать конечное свойство объекта, то есть operationResult.Response.ResponseText; внутри этой функции и, если есть какой-либо из родительских объектовобъект имеет значение null, и он должен выдать ошибку, он вернет false, и мы можем вернуть значение из блока else, как показано в гипотетическом примере ниже:

var opertionResult = SomeRestFunction.Trigger();
string ServerResponse = IsError(operationResult.Response.ResponseText)? "Null": operationResult.Response.ResponseText;

Итак, есть ли у нас что-то подобное вC #? Надеюсь, это имеет смысл?

1 Ответ

0 голосов
/ 03 октября 2019

Если вы используете c # 6 или более новую версию, вы можете использовать оператор null-conditional & null-coalescing-operator , как показано ниже.

Здесь вам нужно поместить ?, чтобы проверить, является ли объект null или нет. Если объект null, он не будет выполнять дальнейшую проверку и вернет null. И null-coalescing-operator (??) будет использоваться для проверки, является ли значение null, тогда он вернет значение при условии ??.

string ServerResponse = SomeRestFunction.Trigger()?.Response?.ResponseText ?? "Null";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...