要將string轉化為同名的方法函數,可以用下面的例子同樣的方法來實現:
實例:
string strClass = "stringConvertClass.test"; //命名空間+類名
string strMethod = "Method";//方法名
Type t;
object obj;
t = Type.GetType(strClass);//通過string類型的strClass獲得同名類“t”
System.Reflection.MethodInfo method = t.GetMethod(strMethod);//通過string類型的strMethod獲得同名的方法“method”
obj = System.Activator.CreateInstance(t);//創建t類的實例 "obj"
method.Invoke(obj,null);//t類實例obj,調用方法"method"
//上面的方法是無參的,下面是有參的情況.
object[] objs = new object[]{testcase};
method.Invoke(obj,objs );//t類實例obj,調用方法"method(testcase)"
這個方法基本是可行的,但是對於form下面的函數通常不能用類,只有一個方法名稱,用上面的方法就比較麻煩了,揣摩了很久,有下面這個方法:
switch (methodName)
{
//括號中為參數
case "GetTargetInfo":
GetTargetInfo(Convert.ToString(e.value).Split('\"')[1].Split('\"')[0]);
break;
case "GetPathInfo":
GetPathInfo(Convert.ToString(e.value).Split('\"')[1].Split('\"')[0]);
break;
case "GetAllInfo":
GetAllInfo(Convert.ToString(e.value).Split('\"')[1].Split('\"')[0]);
break;
}
Java之String類的使用細節 http://www.linuxidc.com/Linux/2015-01/111595.htm
C++中字符數組和字符串string http://www.linuxidc.com/Linux/2014-11/108799.htm
擴展C++ string類 http://www.linuxidc.com/Linux/2014-08/105033.htm