Windowns Mobile - Enum Definition


昨天在開發手機版軟件概念上,發生了很多特別的事情,所以又再一次寫下了筆記
由於手機版本中的 “.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