通過type.getfields(bindingflags.static)獲取列舉值列表,然後通過fieldinfo.getvalue(null)就能獲取到值,注意是傳入null,像獲取靜態值和常量那樣。
返回的值可以直接強轉為int,因為列舉的基礎型別就是int。
如果獲取所有的字段資訊,會發現裡面有個system.int32 value__,他是個隱藏的變數,用來儲存列舉的實際值。這也說明,列舉的基礎型別是int
測試如下:
public enum mytestenum
fieldinfo fields = typeof(mytestenum).getfields();
for(int i = 0; i < fields.length; i++)
輸出如下:
c 如何通過反射 獲取 設定屬性值
c 利用反射,遍歷獲得乙個類的所有屬性名,以及該類的例項的所有屬性的值 命名空間 system.reflection 程式集 mscorlib 在 mscorlib.dll 中 c 利用反射,遍歷獲得乙個類的所有屬性名,以及該類的例項的所有屬性的值 總結 對應某個類的例項化的物件tc,遍歷獲取所有屬...
通過反射來操作列舉
通過class來獲取任意列舉常量裡面的值和方法 先準備資料 enum testenum testenum integer dictkey,string dictvalue,integer dictindex public integer getdictkey public string getdic...
通過反射,如何將數值型列舉值賦值給列舉型別的屬性
處理可空列舉型別 原理它是值型別,原始寫法是nullable,泛型可以有多個型別引數,但資料庫的乙個欄位只會有乙個型別,所以判斷第乙個型別引數是否是列舉 if prop.propertytype.isvaluetype prop.propertytype.isgenerictype prop.pro...