Прошу прощения за расплывчатое название, но я не был уверен, как лучше всего его описать.
Я пишу сценарий преобразования С# в SSIS. Цель состоит в том, чтобы принять 5 значений, которые являются десятичными, и мне нужно получить первое значение из 5, которое не является нулевым, в заранее определенном порядке, как вы можете видеть по порядку else if заявления. Итак, как вы можете видеть, я хочу получить значение MM, если оно есть, если нет, то PRE, затем DD, PT и т. д. Вы также увидите, что я просто присваиваю небольшое значение метки varchar, чтобы показать, какое значение вернулось как хорошо.
Есть ли более чистый/простой способ сделать это, который не включает кучу блоков if/else if? Я просто ищу, чтобы очистить его.
текущий код ниже (спасибо за любой совет!):
public Tuple<decimal?,string> getCurrentRec(Decimal? PT, Decimal? DD,
Decimal? PRE, Decimal? MM)
{
string ptlabel = "PT";
string ddlabel = "DD";
string prelabel = "PRE";
string MMLabel = "MM";
string curlabel;
decimal? currentval;
if (MM.HasValue)
{
curlabel = MMLabel;
currentval = MM.Value;
}
else if (PRE.HasValue)
{
curlabel = prelabel;
currentval = PRE.Value;
}
else if (DD.HasValue)
{
curlabel = ddlabel;
currentval = DD.Value;
}
else if (PA.HasValue)
{
curlabel = ptlabel;
currentval = PT.Value;
}
else
{
curlabel = "";
currentval = (decimal?)null;
}
return Tuple.Create(currentval, curlabel);
}