簡體   English   中英

枚舉值的算術運算

[英]arithmetic operations on enum values

c#枚舉支持哪些算術運算? 令人驚訝的是,我既無法通過Google也無法通過Wikipedia和stackoverflow找到它。

我可以在不進行任何強制轉換的情況下添加兩個枚舉值嗎? 在值上加上或減去任意常數? 還是枚舉確保該類型的值始終是已定義枚舉值或其位掩碼之一?

class ... {...
enum WeekDays : byte { Sun = 1, Mon = 2, Tue = 3, /* and so on*/ Sat = 7 };
public static bool IsWeekend (WeekDays _d) {
/// Can I be sure here that _d has value from 1..7? May it be any of 0..255?
}

我知道按位運算,支持它們表示標志似乎是合理的。

Wikipedia告訴我們,我的示例還允許_d - 1WeekDays.Tue - WeekDays.Mon ,這對於嚴格排序的順序枚舉很有用,但是我找不到任何標准參考,請給我指出嗎?

以下運算符可用於枚舉類型的值: ==!=<><=>=+-^&| ~++--sizeof

如果要使用算術運算,請不要使用enums ,而應使用numbers Enums是數字值的命名慣例,以使它們更易於閱讀並允許將它們組合使用。 實際上,這就是您在互聯網上找不到任何相關信息的原因,因為它不應該用enums來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM