9

サンプル コードを参照しているときに、次の enum 宣言に気付きました。None=1 とはどういう意味ですか?

public enum ButtonActions
{
    None = 1,        
    Clear,
    Insert,       
    Delete,
    Cancel,
    Close
}
4

4 に答える 4

5

からMSDN;

デフォルトでは、列挙型の各要素の基になる型はintです。

数値型の代わりに列挙型を使用する利点は次のとおりです。

  • 変数に対して有効な値をクライアント コードに明確に指定します。

  • Visual Studio では、IntelliSense によって定義された値が一覧表示されます。

列挙子リストの要素に値を指定しない場合、値は自動的に1ずつインクリメントされます。列挙型を作成するときは、最も論理的な既定値を選択し、値を 0 にします。これにより、作成時に値が明示的に割り当てられていない場合、すべての列挙型にそのデフォルト値が設定されます。

最も重要な部分の 1 つは、これらの値を使用する理由がビット フラグであると考えています。with を使用すると、列挙型要素に対してANDORNOTXORFlagsAttributeなどのビット演算を使用できます。ページの例;MSDN

[Flags]
enum Days2
{
    None = 0x0,
    Sunday = 0x1,
    Monday = 0x2,
    Tuesday = 0x4,
    Wednesday = 0x8,
    Thursday = 0x10,
    Friday = 0x20,
    Saturday = 0x40
}
class MyClass
{
    Days2 weekends = Days2.Sunday | Days2.Saturday;
}
于 2013-05-29T06:32:58.340 に答える
0

それは、あなたがそれを参照できることを意味します

ButtonActions bt = ButtonActions.None;

また

ButtonActions bt = (ButtonActions)1;

これは、列挙が 0 ではなく 1 からカウントを開始するように強制するために使用されます。

于 2013-05-29T06:39:09.010 に答える