日期:2014-05-18 浏览次数:21256 次
private string getStatus(int status)
{
string strStatus = "";
if(status.toString().Trim().Equals("status.name.good"))
{
strStatus = "status.value.good";
}else if(status.toString().Trim().Equals("status.name.bad"))
{
strStatus = "status.value.bad";
}else if(status.toString().Trim().Equals("status.name.normal"))
{
strStatus = "status.value.normal";
}
return strStatus;
}
private string getStatus(int status)
{
string strStatus = "";
switch (status.ToString().Trim())
{
case "status.name.good":
strStatus = "status.value.good";
break;
case "status.name.bad":
strStatus = "status.value.bad";
break;
case "status.name.normal":
strStatus = "status.value.normal";
break;
default:
break;
}
return strStatus;
}
------解决方案--------------------
strStatus = new System.Text.RegularExpressions.Regex(@"status.value.\w+").Match(status.ToString().Trim()).Value;
我只是怀疑,int类型的status在ToString怎么可能等于那些字符串?
------解决方案--------------------
比较好的办法是定义个全局变量的字典
SortedList<int, string> slist = new SortedList<int, string>();
启动时就把配置文件里和这有关的读到字典里
string[] arr = { "good", "bad", "normal" };
foreach (var item in arr)
{
slist.Add(int.Parse(Util.getValue("status.name." + item)), Util.getValue("status.value." + item));
}
查询方法
private string getStatus(int status)
{
string str;
slist.TryGetValue(status, out str);
return str;
}