昨天在開發手機版軟件概念上,發生了很多特別的事情,所以又再一次寫下了筆記 由於手機版本中的 “.NET Compact Framework” 並不支援 Enum.GetValues 所以連上了關於這句錯誤的提示時,真的有點出手無策,不過還好得到大神幫忙,解決 記錄一下..
主要可以用下面的函式取代 Enum.GetValues 這方法.
1 2 3 4 5 6 7 8 9 10 11 12 public static Array GetEnumValues (Type enumerationType) { if (!enumerationType.IsEnum) throw new InvalidParameterValueException("GetEnumValues(enumerationType)" , enumerationType); object valAux = Activator.CreateInstance(enumerationType); FieldInfo[] fieldInfoArray = enumerationType.GetFields(BindingFlags.Static | BindingFlags.Public); Array res = Array.CreateInstance(enumerationType, fieldInfoArray.Length); for (int i = 0 ; i < res.Length; i++) res.SetValue(fieldInfoArray[i].GetValue(valAux), i); return res; }
參考 : http://ideas.dalezak.ca/2008/11/enumgetvalues-in-compact-framework.html