開發中巧用Enum列舉型別

2021-05-26 22:01:38 字數 2397 閱讀 4990

在實際開發中,在資料庫表設計中,我們往往習慣於用乙個int型別的state欄位去表示資料的狀態,這個欄位很方便去表示這條資料的狀態,但是又不願意去建一張這個state欄位的外來鍵表去解釋狀態。

我們一般會把這個state欄位當成乙個約定,去在專案中應用(比如:0:啟用,1:禁用)

在後台管理或其它地方顯示int型別對應的實際狀態時,再到公共類中去寫乙個方法,裡面用乙個switch...case去返回對應的中文解釋。

但是我習慣於用乙個enum

列舉去規範資料庫去所有的state欄位,enum的使用,也更利於開發,可以分別對列舉注釋,約定可以呈現在開發人員眼前,而不是直接憑空約定。下面分享一下我對enum類的使用。

1.首先,我們可以對列舉型別建立乙個實體類:readenum

public class readenum

public int value

}

2.第二步,建立state欄位對應的列舉

#region##狀態列舉(資料庫裡所有state列舉)

/// /// 狀態列舉(資料庫裡所有state列舉)

/// 建立人:porschev

///

public enum ssnstate

#endregion

如上面建立的列舉,開發者在使用列舉時一般都不會用到紅色部分description屬性,它在system.componentmodel命名空間下

有了它,我們完全可以不用以前使用的switch...case方法去釋義或顯示中文。

第三步:對所有enum寫一些應用方法

#region##獲得enum型別description

/// /// 獲得enum型別description

/// 建立人:porschev

///

/// 列舉的型別

/// 列舉值

/// string

public static string getenumdesc(type enumtype, object val)

system.reflection.fieldinfo finfo = enumtype.getfield(enumvalue);

object enumattr = finfo.getcustomattributes(typeof(system.componentmodel.descriptionattribute), true);

if (enumattr.length > 0)

}return enumvalue;

}#endregion

#region##獲取某個列舉的全部資訊

/// /// 獲取某個列舉的全部資訊

/// 建立人:porschev

///

/// 列舉

/// 列舉的全部資訊

public static listgetenumlist()

return list;

}#endregion

#region##根據值返回列舉對應的內容

/// /// 根據值返回列舉對應的內容

/// 建立人:porschev

///

/// 列舉

/// 值(int)

///

public static t getmodel(int value)

#endregion

#region##根據值返回列舉對應的內容

/// /// 根據值返回列舉對應的內容

/// 建立人:porschev

///

/// 列舉

/// 值(string)

///

public static t getmodel(string value)

#endregion

這幾個方法完全可以滿足在專案中對enum列舉的使用。

第四步:測式方法

string str = getenumdesc(typeof(ssnstate), 0);

//結果:啟用

listlist = getenumlist();

//結果:list.count=2

// 第乙個元素:name:啟用;value:0

// 第二個元素:name:禁用;value:1

ssnstate re = getmodel(0);

//結果:ssnstate.enabled

ssnstate re1 = getmodel("0");

//結果:ssnstate.enabled

C C 中列舉型別 enum

新手入門 c c 中列舉型別 enum 出處 pconline 2005 02 26 15 47 04 如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個...

C C 中列舉型別 enum

如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆盒中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就...

C C 中列舉型別 enum

如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆合中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就...