Отлично. &&
является коротким замыканием в C #, и параметру out
определенно будет присвоено соответствующее значение с помощью TryParse
до вызова ContainsKey
.
С другой стороны, вы можете использовать тот же трюк снова, чтобы получить значение:
string profitCenter;
int expenseCode;
if (int.TryParse(sourceRecord.ExpenseCode, out expenseCode) &&
_ExpenseCodeLookup.TryGetValue(expenseCode, out profitCenter))
{
destRow.PROFIT_CENTER_NAME = profitCenter;
}
else
{
destRow.PROFIT_CENTER_NAME = "Unknown";
}
Таким образом, вы только один раз просматриваете код расхода.