C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: C#での書き方


(過去ログ 54 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■30721 / inTopicNo.1)  C#での書き方
  
□投稿者/ 幸広 (1回)-(2009/01/05(Mon) 01:49:59)

分類:[C#] 

2009/01/05(Mon) 01:52:31 編集(投稿者)

C#学習中です。

書き方でご質問させてください
ある数値をメソッドに渡して数値に応じてランクを表示するものですが
private string Lank(int num)
{
string lank = "";
if (num <= 100)
{ lank = "E"; }
else if (num <= 200 && 100 < num )
{ lank = "D"; }
return lank;
}
このように書きましたがランクを増やすごとにif文を増やすことになります。
これでも動くのですがもっとこういう場合の書き方みたいなのがあるきがしました。

こういう書き方をしたほうが見やすい、わかりやすい、普通などで教えてください
引用返信 編集キー/
■30722 / inTopicNo.2)  Re[1]: C#での書き方
□投稿者/ 雲 (23回)-(2009/01/05(Mon) 06:14:03)
No30721 (幸広 さん) に返信

> こういう書き方をしたほうが見やすい、わかりやすい、普通などで教えてください

幸広さんが書かれている記述で良いと思います。

if( num < 100 ){ // [範囲] num < 100

}else if( num <= 200 ){ // [範囲] 100 <= num <= 200

}...

仮に、範囲のきりが良くて、0<=num<100, 100<=num<200 のようになっているのなら、
関数ポインタを使って、

func[num/100]( num ); // 関数の呼び出し

というのもありだとは思いますが。。。

引用返信 編集キー/
■30723 / inTopicNo.3)  Re[1]: C#での書き方
□投稿者/ 渋木宏明(ひどり) (1019回)-(2009/01/05(Mon) 08:12:32)
渋木宏明(ひどり) さんの Web サイト
> このように書きましたがランクを増やすごとにif文を増やすことになります。
> これでも動くのですがもっとこういう場合の書き方みたいなのがあるきがしました。
>
> こういう書き方をしたほうが見やすい、わかりやすい、普通などで教えてください

逆に、どういう点を改善したいですか?

条件が増えたり変更になった場合、どこかの何かを書き足す/修正すること自体は避けられません。

if 文を連ねるのが美しくないと感じているなら LINQ を使ってもかけるし、条件の追加・変更をコードと切り離したいのなら、判定や条件を外部ファイルやDBに追いやる、という手もあります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -