方法始终返回null

时间:2014-04-13 21:35:31

标签: c# switch-statement

我的方法/函数总是返回null,我不明白为什么。我确认输入密钥是有效的情况。 请看一看。谢谢!

public string GetCode(string key)
{
    string result = null;
    switch (key)
    {
        case "51118":
            result = "27";
            break;
        case "44559":
            result = "28";
            break;
        case "52286":
            result = "52";
            break;
        case "204632":
            result = "53";
            break;
        case "82097":
            result = "31";
            break;
        case "159446":
            result = "39";
            break;
        case "104361":
            result = "33";
            break;
    }
    return result;
}
编辑:我很抱歉,我的坏!似乎没有错。问题是,显然在固定开关后我偶然弄乱了它并改变了键,因此它代表了另一个参数。 至少我学到了一些东西。谢谢你们!

2 个答案:

答案 0 :(得分:2)

我将专注于key论证。

为什么不在Trim()上拨打key以防止整个字符串的开头和结尾出现空格?

   switch (key.Trim())
   {
   }

另一个好的添加应该是应该抛出ArgumentException的默认情况:

   switch (key.Trim())
   {
        ....
        default:
           throw new ArgumentException("key", string.Format("Given key '{0}' is not currently supported", key));
   }

目前,这些应该是我在你的案例中要做的第一步,它们应该指导你解决整个问题,因为ArgumentException会告诉你实际问题是什么,Trim()应该避免白色空间存在很多问题。

答案 1 :(得分:1)

除了以上所有解释之外,我想补充一点,如果没有条件匹配,你应该总是在switch语句中添加一个默认大小写。