- - PR -
If文の表記方法について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-26 12:02
問題なのは、そうすることに何ら意味を見出せないことですよね。(パズルみたいなもの?) パフォーマンスも落ちる上に、可読性も悪くなります... orz # Java なら if だけで書くでしょうし、VB | C# なら Select Case | switch でしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-26 12:17
そこだけならば、
このように、別メソッドにしてしまうことも考えられます。 SQL 文の IN 句みたいな使い方ですね。 Has メソッドの種明かし。
類似スレッド : SQL の IN のような… (forums.microsoft.com) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-26 12:27
If instr("01|11|21|23", aaa) > 0 Then
ただし、「aaaは2文字で、"|"を含まないこと」が保証されていないとダメです。 | ||||||||||||
|
投稿日時: 2007-01-26 12:50
これを出すなら正規表現もw 逆に意図がわかりづらくなってしまった。。。 System.Text.RegularExpressions.Regex.IsMatch(str, "^(01|02|03|04)$") _________________ かるあ のメモ と スニペット | ||||||||||||
|
投稿日時: 2007-01-26 12:52
if (Array.Find(new string[] {"01","11","21","31"}, aaa) != null) {
とか。 あ、駄目か。 Predict<T> 定義してたらもっと長くなっちゃいますね。 lamda 式が使えるようになるまで我慢 (^^; [ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-01-26 13:05 ] | ||||||||||||
|
投稿日時: 2007-01-26 13:42
aaa.Equalsでいいような。 まあそもそもIndexOfでとかもあるでしょうけど… | ||||||||||||
|
投稿日時: 2007-01-26 13:43
回答者らはパズル要素で楽しんでいるだけなのはわかるので質問者だけに言う。
>質問者 可読性からしても。言うまでもなくSelect Caseが望ましい。 最適化の邪魔をしてどうする。常識的に考えて・・・ | ||||||||||||
|
投稿日時: 2007-01-26 15:02
可読性をあげたいのであれば、別メソッドにした方が良いですね。
その条件のTrueの状態を表したメソッド名を作成して、 メソッド内で、If文を分解してあげます。 private function ○○な時(aaa as string) as boolean If aaa = "01" Then return True End If If aaa = "11" Then return True End If If aaa = "21" Then return True End If If aaa = "31" Then return True End If return false end function http://d.hatena.ne.jp/NAL-6295/20061006/p4 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2007-01-26 19:34 ] |