亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

本地定義的枚舉標志和枚舉定義的標志有什么區別?

本地定義的枚舉標志和枚舉定義的標志有什么區別?

C#
米脂 2023-07-09 10:23:04
我正在使用枚舉,當我遇到枚舉的 [Flags] 時,我正在尋找一種將一系列枚舉值分組到不同組的方法。我注意到 ms-Docs 上的示例正在打印本地聲明的枚舉按位范圍的數組(作為枚舉名稱),但當我在枚舉本身中聲明相同的范圍時卻沒有。我已經測試過Enum.HasFlag(),它執行相同的計算,但它不會以相同的方式打印它。我已經找到了很多標志迭代器的解決方案,但似乎該功能已經存在于本地聲明的變量中。枚舉聲明值和本地聲明的枚舉有什么區別?[Flags] public enum DinnerItems{        None = 0,        Entree = 1,        Appetizer = 2,        Side = 4,        Dessert = 8,        Beverage = 16,        BarBeverage = 32,        MyOrder = Appetizer | Entree | Beverage | Dessert,} DinnerItems flagValue = DinnerItems.None | DinnerItems.Side;            DinnerItems myOrder = DinnerItems.Appetizer | DinnerItems.Entree |                                 DinnerItems.Beverage | DinnerItems.Dessert;            Console.WriteLine("{0} includes {1}: {2}",                            myOrder, flagValue, myOrder.HasFlag(flagValue));這將打?。篗yOrder 包括 Side:False從枚舉中刪除 DiningItems.MyOrder 時的代碼相同:主菜、開胃菜、甜點、飲料包括配菜:False
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

根據文檔:

返回值使用通用格式說明符(“G”)進行格式化。也就是說,如果 FlagsAttribute 未應用于此枚舉類型并且存在等于此實例的值的命名常量,則返回值是包含常量名稱的字符串。如果應用 FlagsAttribute 并且存在一個或多個等于此實例的值的命名常量的組合,則返回值是一個字符串,其中包含以分隔符分隔的常量名稱列表。

如果沒有MyOrder,它就會執行分隔符分隔的名稱列表 - 這似乎就是您想要的。

但是?MyOrder現在MyOrder是一個或多個命名常量(一個常量 vs 四個常量)的最簡單組合 - 所以它會輸出MyOrder。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號