В общем, есть switch длиной с Эверест, как бы вы избавились от него, кроме как записывать это в Dictionary?
switch (currencyLeft)
{
case "BTC":
return 0.001m;
case "BCH":
case "ETH":
case "FCT":
case "NEO":
case "UBTC":
case "XEM":
case "ZEC":
return 0.01m;
case "MCO":
case "QTUM":
case "REP":
case "STX":
case "VET":
return 0.1m;
case "ETC":
case "DASH":
case "LTC":
case "XLM":
case "XRP":
case "XMR":
return 0.5m;
case "GAT":
return 8m;
case "BMC":
case "DENT":
case "DRG":
case "ETN":
case "FDX":
case "FLIXX":
case "FSN":
case "GZE":
case "IND":
case "IXT":
case "MTN":
case "OAX":
case "ONG":
case "QASH":
case "RKT":
case "SAL":
case "SER":
case "SNIP":
case "SPHTX":
case "STAC":
case "STORJ":
case "STU":
case "TPT":
case "TRX":
case "VZT":
return 1m;
default:
throw new Exception("Unsupported symbol");
}
UPD: сам switch и так находится в приватном методе, который возвращает decimal и принимает string. Задача в том, чтобы этот код (логику, если так можно "это" назвать) как-то упростить (уменьшить), если это возможно, но не словарем.
Ответ
Хардкод значений и курсов в коде - это нехорошо.
Положите все это в CSV / JSON / базу данных. Т.е. в любое хранилище, кроме кода. Поднимайте из хранилища по первому обращению и десериализуйте в Dictionary
Комментариев нет:
Отправить комментарий