日期:2014-05-18  浏览次数:20818 次

求助+散分 : 如何把以下的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