Я знаю, что вы всегда должны проверять входящие параметры на метод для null. Но что, если у меня есть этот сценарий с try/catch, ссылающийся на локальную переменную. Нужно ли мне проверять нуль ниже? Потому что он все равно поймает его, если он будет нулевым, а следующая строка кода попытается использовать переменную refundResponse:
public string DoRefund(...)
{
try
{
......
string refundTransactionID = string.Empty;
......
RefundTransactionResponseType refundResponse = transaction.DoRefund(...);
if (refundResponse != null)
refundTransactionID = refundResponse.RefundTransactionID;
.....
}
catch (Exception ex)
{
LogError(ex);
return ex.ToString();
}
}
Помните, что я говорю конкретно о локальных переменных и проверяет их внутри метода, а не входящие параметры метода.
Все, что я прошу здесь, это мне нужно проверить значение null перед установкой refundTransactionID или просто установить его без if, если предполагается, что компилятор будет обрабатывать и бросать, если он является нулевым, который будет пойман и отброшен как строка для вызывающего абонента в этом случае.
или он должен быть
if (refundResponse == null)
return null;
или просто полностью выберете для этого локального назначения переменных, а затем, поскольку в этом случае у меня есть try/catch, я обрабатываю любые исключения, собранные компилятором, естественно, возвращая исключение в виде строки для вызывающего ( это было не мое решение отправить обратно строку, это было требование моего босса... поэтому обойти эту дискуссию на данный момент):
refundTransactionID = refundResponse.RefundTransactionID;
в конечном итоге остальная часть кода дальше по линии в методе зависит от действительного refundTransactionID.