我的案例值文本總是等於相關OSResultStruct代碼中的「我現在已經實現並正在工作的方式」。因此,例如,如果案例是確定的,則屬性是OSResultStruct。 OSEdition。c#消除開關要求
是否有可能做類似下面的代碼行?如果是這樣,那麼我可以用一行代碼替換我的switch語句。
lstNewItems[i].sItemValue = OSresult.OSResultStruct."lstNewItems[i].sItemName.ToString().ToUpper()";
的方式,我有現在implimented並正在
switch (lstNewItems[i].sItemName)
{
case "osedition":
lstNewItems[i].sItemValue = OSresult.OSResultStruct.OSEdition;
break;
case "osbuild":
lstNewItems[i].sItemValue = OSresult.OSResultStruct.OSBuild;
break;
case "osmajor":
//.....
當我做這個 lstNewItems [I] .sItemValue = OSresult.OSResultStruct.GetType()的getProperty( lstNewItems [i] .sItemName).GetValue(OSresult.OSResultStruct,null).ToString(); 我得到錯誤對象引用未設置爲對象的實例。注意我添加了方法.tostring() – user1438082 2013-03-26 02:34:52
我如何忽略上述alexi推薦的情況? – user1438082 2013-03-26 02:40:59
使用綁定標誌,並看到GetProperty(lstNewItems [i] .sItemName,System.Reflection.BindingFlags.IgnoreCase) – PSL 2013-03-26 02:43:31