|
.NET TIPS 列挙体の値を列挙するには?デジタルアドバンテージ2003/04/04 |
![]() |
|
|
|
列挙体(列挙型)は一定の数の定数(定数のグループ)を定義するためのものだ。例えば、.NET Frameworkのクラス・ライブラリには、週の7つの曜日を定義したDayOfWeek列挙体(System名前空間)が用意されている。
列挙体で定義されたそれぞれの定数の値を取得するには、Enumクラス(System名前空間)のGetValuesメソッドを使用する。このメソッドはstaticなメソッドであるため、インスタンスを作成しなくても、次のようにして呼び出すことができる。
Array arr = Enum.GetValues(typeof(DayOfWeek));
Enum.GetValuesメソッドは、列挙体で定義されたすべての定数を含んだArrayクラスのオブジェクトを返す。パラメータには対象となる列挙体の型を表すTypeクラスのオブジェクトを指定する。typeofはTypeオブジェクトを取得するためのC#の演算子だ(Visual Basic .NETではGetType式を使用する)。
上記のコードは、あらかじめ次のように型付きの配列にキャストしておいた方が、各要素を扱いやすいかもしれない。
DayOfWeek[] dow = (DayOfWeek[])Enum.GetValues(typeof(DayOfWeek));
次のサンプル・プログラムは、DayOfWeek列挙体に含まれている定数の値(列挙体の定数はデフォルトではint型)と、その名前を列挙する。
|
|
| DayOfWeek列挙体の値を列挙するC#のサンプル・プログラム(enumvalues.cs) | |
レンダリング・モードの列挙
.NET Frameworkのクラス・ライブラリでは、Windowsアプリケーションでテキストを描画する場合の品質を定義したTextRenderingHint列挙体(System.Drawing.Text名前空間)が用意されている。次に、Enum.GetValuesメソッドでこの列挙体の値を列挙し、各品質でテキストを描画するプログラムを作成してみよう。
まずVisual Studio .NETを起動し、新しいプロジェクトとしてC#のWindowsアプリケーションを開く。これにより次のようなフォームが作成される。
![]() |
| Visual Studio .NETで作成されるフォーム |
次にコードを表示し、次のコードを追加する。
|
|
| コードを開いて追加するOnPaintメソッド | |
| このOnPaintメソッドは描画が必要な場合に呼び出される。ここではまずFontオブジェクトを作成し、テキストのレンダリング・モードを設定してから、作成したFontオブジェクトで文字列を描画する。なお、プログラムの先頭には「using System.Drawing.Text;」を追加する必要がある。 |
プログラムを実行すると次のような画面が表示される。
![]() |
| プログラムの実行結果 |
| TextRenderingHint列挙体で定義された各品質で、その値の名前を描画している。 |
Single〜の2つの行以外はアンチエイリアシングされているのが分かるだろうか。![]()
|
カテゴリ:クラス・ライブラリ 処理対象:列挙体 使用ライブラリ:Enumクラス(System名前空間) 使用ライブラリ:DayOfWeek列挙体(System名前空間) 使用ライブラリ:TextRenderingHint列挙体(System.Drawing.Text名前空間) 使用キーワード:typeof演算子 関連TIPS:列挙体の名前を列挙するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




