いうリフレクションの型が取れます。オブジェクトに実装されているカスタム属性を取得するメソッドを呼び属性をオブジェクトとして取り出しています。上記拡張メソッドの使い方は以下の通りです。Enumのメンバーにメソッドが追加される形になるのでメンバーを直接指定して呼び出します。Paruse」パターンという考え方で実装したメソッドの使い方は以下の通りです。AAA}複数の属性が付与されていても取得できる1つのEnumのメンバーに以下のように複数の属性がついているEnumがあったとしても今回の処理によって適切に属性オブジェクトを取得することができます。Third}以下のように型を指定すれば複数の属性がEnumに付与されていても適切に属性を取得することができます。Console.WriteLine("Obsoleteが付与されている。Console.WriteLine("Obsoleteが付与されていない。Obsoleteが付与されている。Console.WriteLine("Descriptionが付与されている。Console.WriteLine("Descriptionが付与されていない。Descriptionが付与されている。2222}パフォーマンスどうなのか?属性を取得する処理は、リフレクションを使用して実行時型情報から属性を取り出しているためパフォーマンスが悪いのかもしれません。そこで、Dictionaryで対応関係のテーブルを作成した場合とのパフォーマンスの比較を行いました。先に計測結果を載せます。それぞれ実行の実行結果は以下の通りです。100万回処理を繰り返し連続で10回実行した平均値となります。13ms予想通りめちゃくちゃ遅いですね...作っておいてなんですが、予想を超えた遅さです。カスタム属性から値を取ると処理速度が250倍遅いです。パフォーマンス測定のコード計測に使用したコードは以下の通りです。}}結論:Enumに属性を使用するべきか?結論ですが、概ね以下の通りです。処理速度が優先の場合使用するべきではない。情報の整理には有用なので速度がクリティカルでない場面では使ってよい。上記を踏まえた上で、初期化の時だけしか呼ばれないなど、1秒に1回も呼ばれない処理での利用は全く問題ありません。秒間数万回の処理には絶対使用してはいけません。時と場合に依り記述を選択しましょう。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。