C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何缩短以下C#if语句?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想缩短以下代码,但我不知道从哪里开始.

交换机是否可以采用这种方式?

static String RevisedConversionFunction(String input,String from,String to)
    {
        double exchangeRateUSD;
        double exchangeRateAUD;
        double exchangeRateCAD;
        double exchangeRateEUR;
        double exchangeRateGBP;
        double exchangeRateNZD;
        double fromExchangeRate;
        double toExchangeRate;
        exchangeRateUSD = 1;
        exchangeRateAUD = 1.31;
        exchangeRateCAD = 1.28;
        exchangeRateEUR = 0.95;
        exchangeRateGBP = 0.68;
        exchangeRateNZD = 1.36;
        fromExchangeRate = 0;
        toExchangeRate = 0;

        if (from.Equals("USD"))
        {
            fromExchangeRate = exchangeRateUSD;
        }
        if (from.Equals("AUD"))
        {
            fromExchangeRate = exchangeRateAUD;
        }
        if (from.Equals("CAD"))
        {
            fromExchangeRate = exchangeRateCAD;
        }
        if (from.Equals("EUR"))
        {
            fromExchangeRate = exchangeRateEUR;
        }
        if (from.Equals("GBP"))
        {
            fromExchangeRate = exchangeRateGBP;
        }
        if (from.Equals("NZD"))
        {
            fromExchangeRate = exchangeRateNZD;
        }

        if (to.Equals("USD"))
        {
            toExchangeRate = exchangeRateUSD;
        }
        if (to.Equals("AUD"))
        {
            toExchangeRate = exchangeRateAUD;
        }
        if (to.Equals("CAD"))
        {
            toExchangeRate = exchangeRateCAD;
        }
        if (to.Equals("EUR"))
        {
            toExchangeRate = exchangeRateEUR;
        }
        if (to.Equals("GBP"))
        {
            toExchangeRate = exchangeRateGBP;
        }
        if (to.Equals("NZD"))
        {
            toExchangeRate = exchangeRateNZD;
        }

        double amount;
        Double.TryParse(input,out amount);

        amount = (amount / fromExchangeRatE) * toExchangeRate;
        amount = Math.round(amount,2);

        String result = Convert.ToString(amount);
        return result;
    }

我不熟悉交换机,但有没有办法可以在这种情况下使用它们?

提前致谢,
马特

编辑 – 编辑 – 编辑 – 编辑 – 编辑

谢谢大家的意见.

以下代码是我最终使用的代码

static String RevisedConversionFunction(String input,String to)
    {

        //Exchange Rates
        Dictionary<String,double> rates = new Dictionary<String,double>();
        rates.Add("USD",1);
        rates.Add("AUD",1.31);
        rates.Add("CAD",1.28);
        rates.Add("EUR",0.95);
        rates.Add("GBP",0.68);
        rates.Add("NZD",1.36);

        //Conversion
        double amount;
        Double.TryParse(input,out amount);
        return Convert.ToString(Math.round(((amount / rates[from]) * rates[to]),2));
    }

解决方法

>在这种情况下,我会使用字典
>使用decimal而不是double来防止舍入问题

码:

static String RevisedConversionFunction(String input,String to)
{
    Dictionary<String,decimal> dExchange = new Dictionary<String,decimal>()
    { 
        {"USD",1},{"AUD",1.31m},{"CAD",1.28m},{"EUR",0.95m},{"GBP",0.68m},{"NZD",1.36m}
    };

    if (dExchange.ContainsKey(from) && dExchange.ContainsKey(to))
    {
        return Math.round((decimal.Parse(input) / dExchange[from]) * dExchange[to],2).ToString();
    }
    else
    {
        // at least one currency not in the Dictionary - exception handling?
        return null; 
    }
}

大佬总结

以上是大佬教程为你收集整理的如何缩短以下C#if语句?全部内容,希望文章能够帮你解决如何缩短以下C#if语句?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。