DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C# で変数に対するselect case

環境/言語:[WinXP VS2005:C#]
分類:[.NET]

はじめまして
例:
画面上のラジオボタン
 ・晴れ
 ・曇り
 ・雨
 ・雪
とあった場合。
VBでは、
 SELECT CASE TRUE
CASE 晴れ.checked
resultText.Text = "晴れ"
CASE 曇り.checked
resultText.Text = "曇り"



とできたのですが、C#のSWITCHでは定数に対してしか行うことができません。
IF〜ELSEIF〜ELSE でやれば十分にできるのですが、見た目上CASEのようなほうが好きなので。といったレベルです。
よろしくお願いします。
「チェックされているラジオボタン」という列挙体変数を用意し、
ラジオボタンのイベントハンドラでそれに値を設定するというのはどうでしょうか。
無理にやるよりその言語の流儀に沿った方が良いと思いますよ。
http://blogs.wankuma.com/jeanne/archive/2007/07/20/86101.aspx
ありがとうございました。
そうですね。皆様のおっしゃるように言語仕様に従う、または言語仕様内で列挙型を利用するとかの標準的なやり方をするべきですね。
言語仕様はそうあるべくして、そうなっているものだし、基本学習をもう一度して見ますね。
改めて学習できました。ありがとうございます。
いやいや、ちょっとまって。
じゃんぬ氏はどちらに対しての返信なんだろうか?
■No20126に返信(まどかさんの記事)
> いやいや、ちょっとまって。
> じゃんぬ氏はどちらに対しての返信なんだろうか?

強いて申し上げますと閲覧者全員でしょうか。
VB に関してはプロジェクト メンバの意思疎通ができていれば特に申し上げることはないのですが、C# に関しては '無理にやろうとしない方が良い' という意味で書きました。

ちなみにスケーラビリティの確保のため、この分岐自体をメソッド化してパラメータ化するのはアリだと思います。
パラメータには列挙型を設定することになると思いますので千八之介さまの仰る方法になると思います。

DOBON.NET | プログラミング道 | プログラミング掲示板