我的方法/函数总是返回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;
}
编辑:我很抱歉,我的坏!似乎没有错。问题是,显然在固定开关后我偶然弄乱了它并改变了键,因此它代表了另一个参数。
至少我学到了一些东西。谢谢你们!
答案 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语句中添加一个默认大小写。