這種用處很大,比如許可權、執行狀態等,都可以用乙個int型儲存到資料庫中,c#中使用列舉可以處理這個問題。
[flags]public
enum permission
c#對該型別的操作如下:
permission permission = permission.create | permission.read | permission.update | permission.delete;console.writeline("
1、列舉建立,並賦值……
");console.writeline(permission.tostring());
console.writeline((int)permission);
permission = (permission)enum.parse(typeof(permission), "
5");
console.writeline("
2、通過數字字串轉換……
");console.writeline(permission.tostring());
console.writeline((int)permission);
permission = (permission)enum.parse(typeof(permission), "
update, delete, read
", true);
console.writeline("
3、通過列舉名稱字串轉換……
");console.writeline(permission.tostring());
console.writeline((int)permission);
permission = (permission)7;
console.writeline("
4、直接用數字強制轉換……
");console.writeline(permission.tostring());
console.writeline((int)permission);
permission = permission & ~permission.read;
console.writeline("
5、去掉乙個列舉項……
");console.writeline(permission.tostring());
console.writeline((int)permission);
permission = permission|permission.delete;
console.writeline("
6、加上乙個列舉項……
");console.writeline(permission.tostring());
console.writeline((int)permission);
在資料庫中判斷:
and (@permissionisnull
or@permission=0
or permission &
@permission
=@permission)
上面的sql語句同樣可以判斷多個許可權
C 列舉中使用Flags特性
如果對乙個值可以包含多個,那麼可以使用列舉,加上flags 在寫前,需要知道一些基礎知識,取反 或 與,如果不知道的話,請去看看基礎。當然,這些太複雜了,我也不會在這裡解釋。假如有型別 flags public enum show 合併多個,使用 show show show.a show.b 乙個...
2019 9 2 C 列舉中使用Flags特性
title author date createtime categories c 列舉中使用flags特性 lindexi 2019 09 02 12 57 37 0800 2018 2 13 17 23 3 0800 c 如果對乙個值可以包含多個,那麼可以使用列舉,加上flags 在寫前,需要知...
2019 9 2 C 列舉中使用Flags特性
title author date createtime categories c 列舉中使用flags特性 lindexi 2019 09 02 12 57 37 0800 2018 2 13 17 23 3 0800 c 如果對乙個值可以包含多個,那麼可以使用列舉,加上flags 在寫前,需要知...