1. ホーム
  2. c#

[解決済み] 列挙型と定数型。いつ、どちらを使う?

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: 定義された列挙型は、引数として使われた場合、型チェックに役立ちます。定数は単なる値なので、追加のセマンティックな情報は提供しません。