C 列舉中使用Flags特性

2021-09-08 02:30:30 字數 1624 閱讀 1054

這種用處很大,比如許可權、執行狀態等,都可以用乙個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 (@permission

isnull

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 在寫前,需要知...