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

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

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

戻り値を求める時の条件判断の書き方

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

■96143 / inTopicNo.1)  戻り値を求める時の条件判断の書き方
  
□投稿者/ 粗品 (10回)-(2020/10/23(Fri) 12:02:54)

分類:[.NET 全般] 

当方の環境はVisualStudio2017/vb.net ですが、
各種言語でも同じことがあるかと思い.NET全般にしています

条件判断の書き方について皆さまのやり方なの教えていただければと思います

Functionでの戻り値を返す時のElseの書き方・使い方なのですが、

(1)If〜Then〜Elseで書く
Function Hoge(ByVal value As Integer) As String
  If value = 1 Then
    Return "Hoge"
  Else
    Return "HogeHoge"
  End If
End Function

(2)If〜EndIfの外で書く
Function Hoge(ByVal value As Integer) As String
  If value = 1 Then
    Return "Hoge"
  End If

  Return "HogeHoge"
End Function

いずれにしても1でなければ"HogeHoge"を返すと思うのですが、
どちらも書く人間がいるので出来たら統一するかと思っています。

またIfだけではなく
Select Case
  Case 〜 
  Case Else 〜
End Seelct

でもCase Elseを使う/使わないの同様のことが起こっています

ベストプラクティスがあればと思っていますが、気にするなの意見やそれ以外の選択肢もあればお願いします

引用返信 編集キー/
■96145 / inTopicNo.2)  Re[1]: 戻り値を求める時の条件判断の書き方
□投稿者/ furu (84回)-(2020/10/23(Fri) 12:50:22)
場合によりますね。

ThenとElseが対等の処理なら
If〜Then〜Elseで書く

Elseがメインで行数多いなら
字下げしたくないので
If〜EndIfの外で書く

Case Else(C#なのでdefault)は
処理漏れ防止の為
何もしなくても必ず入れています。
引用返信 編集キー/
■96151 / inTopicNo.3)  Re[2]: 戻り値を求める時の条件判断の書き方
□投稿者/ ぶなっぷ (255回)-(2020/10/23(Fri) 14:48:15)
前提として、「どっちかじゃなきゃいけない」といことはないと思う。

そのうえで、私の場合は、If 〜 Thenにおける 〜が、特殊条件なら、
Elseは特殊条件の否定(= 通常)なので、通常らしくEnd Ifの外側で書きます。

If 〜 Thenが、通常処理としての1つのパターンなら、
別パターンはElseで書きます。

そのうえで、未来を想定するかな。
例えば、以下のように、
  If 〜 Then
  ElseIf 〜
  ElseIf 〜
    :
とElseIfが続くなら、将来、〜 の条件が増える可能性が高いじゃないですか。
〜 の条件が増えたら、必ず、ElseIfを追加しなきゃいけない仕様なら、
最初から、Elseを追加しておいて、
  Else
    Trace.Assert(False)
  End If
などとしておきます。
Assertが発生したら作業漏れに気づくというわけ。

引用返信 編集キー/
■96175 / inTopicNo.4)  Re[3]: 戻り値を求める時の条件判断の書き方
□投稿者/ 粗品 (11回)-(2020/10/26(Mon) 10:43:18)
No96145 (furu さん) に返信

No96151 (ぶなっぷ さん) に返信

ご意見ありがとうございます。

書式として書くのではなく、処理として書く

適材適所のコードを書くことが大事ですね
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ