求助+散分 : 如何把以下的if语句用switch实现!!!
各位大侠,谁能帮我把以下的语句用Switch实现出来,谢了!!
=====================================================================================
public void Test(System.Type objDataType)
{
string t1 = objDataType.ToString();
string t2 = typeof(System.String).ToString();
if (t1 == typeof(System.String).ToString())
t1 = "A";
else
t1 = "B";
}
=====================================================================================
[解决办法]
public void Test(System.Type objDataType)
{
string t1 = objDataType.ToString();
string t2 = typeof(System.String).ToString();
//if (t1 == typeof(System.String).ToString())
//t1 = "A";
//else
//t1 = "B";
switch(objDataType)
{
case typeof(System.String):
t1 = "A";
break;
default:
t1 = "B";
break;
}
}
[解决办法]
public void Test(System.Type objDataType)
{
string t1 = objDataType.ToString();
string t2 = typeof(System.String).ToString();
//if (t1 == typeof(System.String).ToString())
//t1 = "A";
//else
//t1 = "B";
switch(t1)
{
case "typeof(System.String).ToString()":
t1 = "A";
break;
default:
t1 = "B";
break;
}
}
[解决办法]
switch(objDataType.Name)
{
case "String":
t1 = "A";
break;
default:
t1 = "B";
break;
}
LZ多自己实践~~
[解决办法]
其实已经差不多了, 两者都一样
switch(objDataType.Name)
{
case typeof(System.String).Name:
t1 = "A";
break;
default:
t1 = "B";
break;
}
[解决办法]
CASE后只能跟常量。。20楼的通不过是正常的。
[解决办法]
又何必非要用 typeof(Object)。tostring();呢
你反射完之后也只是将其tostring成字符串
不如直接 用"System.String"
string t1 = "asfd";
string t2 = typeof(System.String).ToString();
if (t1 == typeof(System.String).ToString())
t1 = "A";
else
t1 = "B";
Swich(t1)
{
case "System.String":
//TDO: U R CODES
break;
case "System.Int32":
//TDO: U R CODES
break;
//...any other case
default:
//TDO:U R CODES
break;
}
既然你要Case 那么Case中的类型你是预先知道的 为什么要用程序反射出呢 直接写成字符串就行 没必要多此一举