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

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

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

Re[1]: 代入でIF文


(過去ログ 92 を表示中)

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

■55353 / inTopicNo.1)  代入でIF文
  
□投稿者/ まっさ (11回)-(2010/11/27(Sat) 21:02:56)

分類:[.NET 全般] 

こんな書き方ってASP.NET(C#)ではできないのでしょうか?

string aaa = if (b=1) { "look" } else { "yeah" }

いつも、こんな書き方をしてて、ソースが長くなるんですよね。
string aaa;
if (b=1)
{
aaa = "look"
}
else
{
aaa = "yeah";
}

よろしくお願いします
引用返信 編集キー/
■55354 / inTopicNo.2)  Re[1]: 代入でIF文
□投稿者/ Hongliang (742回)-(2010/11/27(Sat) 21:07:23)
三項演算子
を調べてみてください。
引用返信 編集キー/
■55357 / inTopicNo.3)  Re[1]: 代入でIF文
□投稿者/ shu (208回)-(2010/11/27(Sat) 21:49:37)
No55353 (まっさ さん) に返信
aaa = <条件> ? <Trueのときの値> : <Falseのときの値>;

引用返信 編集キー/
■55362 / inTopicNo.4)  Re[1]: 代入でIF文
□投稿者/ よねKEN (642回)-(2010/11/28(Sun) 10:33:02)
No55353 (まっさ さん) に返信
> こんな書き方ってASP.NET(C#)ではできないのでしょうか?
>
> string aaa = if (b=1) { "look" } else { "yeah" }
>
> いつも、こんな書き方をしてて、ソースが長くなるんですよね。

ご質問内容の条件だけで言うと順当な解決策は三項演算子ですが、
場合によっては他のアプローチもあります。

例えば、bの値が0と1だけ、という場合、

string aaa = new string[] {"look", "yeah"}[b];

のようにすることができます。
(実際にこういうパターンを使う場合は毎回配列を作るわけではなく、
アクセス可能な場所に事前に配列を作って用意しておきます)

bが取りうる値のバリエーションがそんなに多くなく、仕様的にブレがないところで、
何度も同じ値の取得が行われるような場合には検討の価値があると思います。

配列の代わりにコレクション(List<T>、Dictionary<TKey, TValue>)を使うことも多いです。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -