日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

标志枚举的使用

發(fā)布時(shí)間:2025/3/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 标志枚举的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

標(biāo)志枚舉的使用大多是在標(biāo)記多重狀態(tài),比如說文件的屬性:只讀,可寫,隱藏,系統(tǒng)文件等相關(guān)屬性,都對(duì)應(yīng)相應(yīng)的標(biāo)志位,如果在C#中想實(shí)現(xiàn)自己的標(biāo)志枚舉,也是可以的,下文是親身試驗(yàn)的一段代碼,希望對(duì)您有所幫助,也望您不吝賜教。

// 執(zhí)行代碼 private void Form1_Load(object sender, EventArgs e) {Log.i("=========================================");StatusAttributes sa = StatusAttributes.Welcome | StatusAttributes.Login;Log.e(sa);Log.e(Convert.ToString((int)sa, 2));if ((sa & StatusAttributes.Login) == StatusAttributes.Login)Log.w("im login");// &按位與if ((sa & StatusAttributes.Meeting) != StatusAttributes.Meeting)Log.w("im not in meeting");// ^異或運(yùn)算 不同則為1 相同則為0sa = sa ^ StatusAttributes.Meeting;Log.e(sa);Log.e(Convert.ToString((int)sa, 2));// ~取反Log.e(~sa);Log.e(Convert.ToString((int)~sa, 2));Log.i("=========================================");FileAttributes fa = (FileAttributes)10;Log.e(fa);if ((fa & FileAttributes.Administrator) == FileAttributes.Administrator)Log.w("created by administrator");if ((fa & FileAttributes.Hide) != FileAttributes.Hide)Log.w("file is show");FileAttributes fa2 = fa ^ FileAttributes.Hide;Log.e(fa2);if ((fa2 & FileAttributes.Readonly) != FileAttributes.Readonly)Log.w("file2 can read and write"); }

注意:a << b 的意思為:二進(jìn)制的a向左移動(dòng)b位

// 枚舉類型 [Flags] public enum StatusAttributes {None = 0,Welcome = 1 << 0,Login = 1 << 1,Meeting = 1 << 2,Share = 1 << 4,Join = 1 << 8, } [Flags] public enum FileAttributes {None = 0,System = 1,Readonly = 2,Hide = 4,Administrator = 8, }

輸出結(jié)果

12-27 16:42:32.019 i ========================================= 12-27 16:42:32.023 e Welcome, Login 12-27 16:42:32.024 e 11 12-27 16:42:32.024 w im login 12-27 16:42:32.024 w im not in meeting 12-27 16:42:32.024 e Welcome, Login, Meeting 12-27 16:42:32.024 e 111 12-27 16:42:32.025 e -8 12-27 16:42:32.025 e 11111111111111111111111111111000 12-27 16:42:32.025 i ========================================= 12-27 16:42:32.025 e Readonly, Administrator 12-27 16:42:32.025 w created by administrator 12-27 16:42:32.025 w file is show 12-27 16:42:32.025 e Readonly, Hide, Administrator

最后列出如何位運(yùn)算修改標(biāo)志枚舉:

StatusAttributes sa = StatusAttributes.Login | StatusAttributes.Welcome; sa = sa | StatusAttributes.Join;//添加屬性 sa = sa | StatusAttributes.Share;//添加屬性 sa = (sa | StatusAttributes.Share) ^ StatusAttributes.Share;//刪除屬性 sa = (sa | StatusAttributes.Meeting) ^ StatusAttributes.Meeting;//刪除屬性

總結(jié)

以上是生活随笔為你收集整理的标志枚举的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。