c#enumでサポートされている算術演算は何ですか?驚いたことに、私はgoogleもwikipediaもstackoverflowも経由して見つけることができませんでした。enum値の算術演算
2つの列挙値を追加できますキャストなし?任意の定数を値に追加するか、それを減算するか? enumは、その型の値が常に定義されたenum値またはそのビットマスクの1つであることを保証しますか?
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?
}
私はビット演算について知っています。フラグを表すためにそれらをサポートすることは合理的です。
私のサンプルでも、_d - 1
またはWeekDays.Tue - WeekDays.Mon
が使用できますが、これは厳密に順序づけられた列挙型の列挙型に便利ですが、標準的な参照は見つかりません。
あなたはそれをテストして何が起こるか見ることはできますか? – Matt
私のポイントは、特定のコンパイラの動作ではなく、標準を知ることです。まず、確かめたいのは、標準のC#(MS、Mono、)をサポートしているコンパイラのコードが正しいことです。第二に、対応する標準の記事から有用なものを読んで、私のC#テストのためによりよく準備したいと思っています。 –
gluk47