[解決済み] 列挙型と定数型。いつ、どちらを使う?
2022-10-16 22:24:12
質問
列挙型について読んでいたところ、定数の宣言と非常によく似ていることがわかりました。列挙型ではなく定数を使用する場合、またはその逆の場合は、どのように判断したらよいでしょうか。列挙型を使用する利点にはどのようなものがありますか?
どのように解決するのですか?
あるものが取り得る値の範囲を定義したい場合、列挙型を使用します。色などはわかりやすい例です。
public enum Colour
{
White,
Red,
Blue
}
というような可能性のあるものをセットにするとか。 (例: I stole from ここで から盗んできたものです。)
[FlagsAttribute]
enum DistributedChannel
{
None = 0,
Transacted = 1,
Queued = 2,
Encrypted = 4,
Persisted = 16,
FaultTolerant = Transacted | Queued | Persisted
}
定数はPIのような単一の値であるべきです。PIの値の範囲はなく、ただPIがあるだけです。
その他のポイントとしては
- a: 定数は必ずしも定数間の関係を示すものではありませんが、列挙は何かが列挙によって定義された集合の一つになり得ることを示します。
- b: 定義された列挙型は、引数として使われた場合、型チェックに役立ちます。定数は単なる値なので、追加のセマンティックな情報は提供しません。
関連
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] DateTimeとDateTimeOffsetの比較
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
-
[解決済み】IEnumerable vs List - What to Use? どのように動作するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] Static readonly」対「const」。