タグ付けされた質問 「enums」

型の要素、メンバー、または列挙子と呼ばれる名前付きの値のセットで構成されるデータ型。

14
Enumは0または1で始まる必要がありますか?
次のEnumを定義したとしましょう。 public enum Status : byte { Inactive = 1, Active = 2, } 列挙型を使用するためのベストプラクティスは何ですか?1上記の例のように開始するか、次のように0(明示的な値なしで)開始する必要があります。 public enum Status : byte { Inactive, Active }
136 c#  .net  enums 

13
ES6でのJavaScriptの列挙型
私はJavascriptで古いJavaプロジェクトを再構築していて、JSで列挙型を行う良い方法がないことに気づきました。 私が思いつくことができる最高のものは: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); const続けてColors再割り当てされているから、それがキーと値を変異防止凍結します。私はシンボルを使用しているので、それColors.REDはと等しくない0か、それ以外のものは何でもありません。 この処方に問題はありますか?もっと良い方法はありますか? (私はこの質問が少し繰り返されることを知っていますが、以前のすべてのQ / Aはかなり古く、ES6はいくつかの新しい機能を提供します。) 編集: シリアル化の問題を処理する別の解決策ですが、まだレルムの問題があると思います。 const enumValue = (name) => Object.freeze({toString: () => name}); const Colors = Object.freeze({ RED: enumValue("Colors.RED"), BLUE: enumValue("Colors.BLUE"), GREEN: enumValue("Colors.GREEN") }); 値としてオブジェクト参照を使用することにより、シンボルと同じ衝突回避が得られます。

21
列挙値のカスタム文字列フォーマットを使用して、列挙型にバインドされたコンボボックスをどのように作成しますか?
Enum ToStringの投稿では、次のDescriptionAttributeようなカスタム属性を使用するメソッドが説明されています。 Enum HowNice { [Description("Really Nice")] ReallyNice, [Description("Kinda Nice")] SortOfNice, [Description("Not Nice At All")] NotNice } 次に、次のGetDescriptionような構文を使用して関数を呼び出します。 GetDescription<HowNice>(NotNice); // Returns "Not Nice At All" ただし、ComboBoxにを強制的に呼び出すことはできないため、列挙型の値をComboBoxに単純に入力する場合GetDescriptionは、実際には役に立ちません。 私が欲しいものは次の要件があります: 読み取り(HowNice)myComboBox.selectedItemは、列挙値として選択された値を返します。 ユーザーには、列挙値の名前だけでなく、使いやすい表示文字列が表示されます。そのNotNiceため、ユーザーには「Not Nice At All」が表示される代わりに、「」が表示されます。 うまくいけば、このソリューションでは、既存の列挙に最小限のコード変更を加える必要があります。 もちろん、作成した列挙ごとに新しいクラスを実装し、そのをオーバーライドすることもできますがToString()、それは列挙ごとに多くの作業を行うため、避けたいと思います。 何か案は? 一体、私は恵みとして抱擁を投げ入れます:-)
135 c#  combobox  enums 


15
フラグを持つEnumの値を反復する方法は?
フラグの列挙型を保持する変数がある場合、その特定の変数のビット値をどうにかして反復できますか?または、Enum.GetValuesを使用して列挙型全体を反復処理し、どれが設定されているかを確認する必要がありますか?
131 c#  enums  enum-flags 


15
#define、enum、またはconstを使用する必要がありますか?
私が取り組んでいるC ++プロジェクトでは、4つの値を持つことができるフラグの種類の値があります。これらの4つのフラグは組み合わせることができます。フラグはデータベースのレコードを表し、次のいずれかになります。 新記録 削除されたレコード 変更されたレコード 既存の記録 ここで、各レコードに対してこの属性を保持したいので、列挙型を使用できます。 enum { xNew, xDeleted, xModified, xExisting } ただし、コードの他の場所では、ユーザーに表示するレコードを選択する必要があるため、次のように、それを単一のパラメーターとして渡すことができます。 showRecords(xNew | xDeleted); だから、私は3つの可能なアプローチがあるようです: #define X_NEW 0x01 #define X_DELETED 0x02 #define X_MODIFIED 0x04 #define X_EXISTING 0x08 または typedef enum { xNew = 1, xDeleted, xModified = 4, xExisting = 8 } RecordType; または namespace RecordType …

30
C ++列挙型を文字列に変換する簡単な方法はありますか?
名前付き列挙型があるとします。 enum MyEnum { FOO, BAR = 0x50 }; 私がググったのは、プロジェクトのすべてのヘッダーをスキャンし、列挙ごとに1つの関数を含むヘッダーを生成するスクリプト(任意の言語)です。 char* enum_to_string(MyEnum t); そして、このようなものの実装: char* enum_to_string(MyEnum t){ switch(t){ case FOO: return "FOO"; case BAR: return "BAR"; default: return "INVALID ENUM"; } } 落とし穴は本当にtypedefされた列挙型と名前のないCスタイルの列挙型です。誰かがこれについて何か知っていますか? 編集:ソリューションは、生成された関数を除いて、ソースを変更しないでください。列挙型はAPI内にあるため、これまでに提案されたソリューションを使用することはオプションではありません。
123 c++  string  enums  scripting 

2
Javaでは、クラス内の列挙型は静的ですか?
内部クラスの内部からアクセスできたように、enumの内部から周囲のクラスのインスタンスメンバーにアクセスできないようです。それは列挙が静的であることを意味しますか?周囲のクラスのインスタンスのスコープへのアクセスはありますか、またはインスタンスを必要な列挙型のメソッドに渡す必要がありますか? public class Universe { public final int theAnswer; public enum Planet { // ... EARTH(...); // ... // ... constructor etc. public int deepThought() { // -> "No enclosing instance of type 'Universe' is accessible in this scope" return Universe.this.theAnswer; } } public Universe(int locallyUniversalAnswer) { this.theAnswer = locallyUniversalAnswer; …
123 java  enums  scope 

11
列挙型をデータベースに保存する方法
列挙型をデータベースに保存する最良の方法は何ですか? 私は、Javaが提供する知っているname()とvalueOf()文字列と背中に列挙型の値を変換する方法。しかし、これらの値を保存する他の(柔軟な)オプションはありますか? 列挙型を一意の番号にするスマートな方法はありordinal()ますか? 更新: 素晴らしくて速い答えをありがとう!思った通りでした。 ただし、「ツールキット」へのメモ。それは片道です。問題は、作成する各Enum型に同じメソッドを追加する必要があることです。これは多くの重複コードであり、現時点ではJavaはこれに対するソリューションをサポートしていません(Java enumは他のクラスを拡張できません)。
123 java  database  enums 

28
列挙型をWinFormsコンボボックスにバインドし、それを設定する
多くの人が、WinFormsでコンボボックスに列挙型をバインドする方法の質問に答えています。こんな感じです: comboBox1.DataSource = Enum.GetValues(typeof(MyEnum)); しかし、表示する実際の値を設定することができなければ、それはかなり役に立ちません。 私が試してみました: comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null 私も試しました: comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1 誰もこれを行う方法について何かアイデアがありますか?
122 c#  .net  winforms  combobox  enums 

7
Java enumのvalueof()およびtoString()をオーバーライドする
myの値は、enumスペースを必要とする単語ですが、列挙型は値にスペースを含めることができないため、すべてまとめてあります。オーバーライドtoString()したい場所にこれらのスペースを追加してオーバーライドします。 またvalueOf()、スペースを追加したのと同じ文字列で使用するときに、列挙型が正しい列挙型を提供するようにします。 例えば: public enum RandomEnum { StartHere, StopHere } 値がtoString()でRandomEnumある呼び出しStartHereはstringを返します"Start Here"。valueof()同じ文字列を呼び出すと、"Start Here"列挙値が返されますStartHere。 これどうやってするの?

1
Scala列挙を理解する
Scala列挙型クラスが理解できないと言わざるを得ません。ドキュメントから例をコピーして貼り付けることができますが、何が起こっているのかわかりません。 object WeekDay extends Enumeration { type WeekDay = Value val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } import WeekDay._ どういう意味ですかtype WeekDay = Value、なぜそれを書かなければならないのですか? なんでval Mon = Value?それは一体何の意味ですか? WeekDay オブジェクトをインポートする必要があるのはなぜですか?そして、 私が書くときval day = WeekDay.Mon、なぜそれはタイプWeekDay.ValueではなくタイプなのWeekDayですか?
122 scala  enums 


4
列挙型をangular2ビューテンプレートに渡す
angular2ビューテンプレートで列挙型を使用できますか? <div class="Dropdown" dropdownType="instrument"></div> 文字列を入力として渡します。 enum DropdownType { instrument, account, currency } @Component({ selector: '[.Dropdown]', }) export class Dropdown { @Input() public set dropdownType(value: any) { console.log(value); }; } しかし、列挙型構成を渡す方法は?テンプレートに次のようなものが欲しい: <div class="Dropdown" dropdownType="DropdownType.instrument"></div> ベストプラクティスは何でしょうか? 編集:サンプルを作成: import {bootstrap} from 'angular2/platform/browser'; import {Component, View, Input} from 'angular2/core'; export enum DropdownType { instrument …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.