2012年12月17日月曜日

VB の Select Case と C# の Switch

MSDN 上での記載では、VB の Select Case と C# の Switch が同等の命令として扱われています。実際にはどちらも条件多分岐命令としては同じなのですが、実際に利用すると VB の Select Case の方が色々と融通が利いて便利な命令であったりします。

例えば C# では Switch 命令で利用できるのは静的な(メソッドやプロパティではない)値である必要があります。ですが VB の Select Case ではメソッドだろうとプロパティだろうと、どのようなものでも記載できます。

   1:  Select Case True
   2:      Case (A = B): Console.WrilteLine("OK")
   3:      Case (B = C): Console.WrilteLine("これもOK")
   4:      Case Else
   5:  End Select

VB ではこのように非常に何でもありで思った通りに記載が可能です。

   1:  Switch (true) {
   2:     case (A == B):
   3:         Console.WriteLine("C#では書けない");
   4:      default
   5:  }

C# では上記のようなロジックはコンパイルエラーとなります。

このように VB には便利で書きやすい命令もありますので、一概に C# が良いとは言い切れない面もありますので、両方の言語を比べてみるとまた面白い発見があるのではないでしょうか。

0 件のコメント:

コメントを投稿