[英]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 - 1
或WeekDays.Tue - WeekDays.Mon
,這對於嚴格排序的順序枚舉很有用,但是我找不到任何標准參考,請給我指出嗎?
以下運算符可用於枚舉類型的值: ==
, !=
, <
, >
, <=
, >=
, +
, -
, ^
, &
, |
, ~
, ++
, --
, sizeof
。
如果要使用算術運算,請不要使用enums
,而應使用numbers
。 Enums
是數字值的命名慣例,以使它們更易於閱讀並允許將它們組合使用。 實際上,這就是您在互聯網上找不到任何相關信息的原因,因為它不應該用enums
來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.