【VB】C#との差異 (超基本編)


C#との文法の違い

 * 調べてみるとあげだしたら、きりがなかった(以下のサイト参照)ので、必要な項目だけ抜粋。
http://blogs.wankuma.com/jeanne/archive/2007/02/27/64217.aspx
http://blogs.wankuma.com/jeanne/archive/2007/02/26/64122.aspx
 * いろいろな議論があるようだが、結局は、好みの問題な感じがする。
 * 調べていて感じたことだが、下記サイトにもあるように、「VBには特有のクセがあるため、
   VBの基本的な構文だけを覚えただけ」では不十分な気がする。(慣れるまで、時間が掛かりそう。。。) 
http://www.r-nakai.com/archives/87

言語仕様

 * 下記サイトが、非常に参考になる。
http://dobon.net/vb/dotnet/vb2cs/vb2cstable.html
 * また、下記サイトは、VB開発者からみたC#との差異が分かるので、これも個人的には興味深い。
http://homepage1.nifty.com/rucio/main/dotnet/technique/teq4_CStoVB.htm
 * 最後に「;」がなくていい。(つまり、「通常 1 行は 1 文」扱いとなる)
  + 複数行でまたぐ場合は、「 _」を使用 
 * コメント文には、「'」か、REM を使用。(C#でいう「//」にあたる)
 * 文字列結合には、「&」を使用。(C#のように「+」演算子も使用可能)
 * C#の「this」、「base」は、それぞれ「Me」、「MyBase」を使用。

変数について

 * 変数は宣言しなくても使用することは可能であり、以下のような特徴がある
  + 変数の型がバリアント型になる(C#でいう、「var」?)
  + バリアント型を使うと他のデータ型を使うときよりプログラムが遅くなる
 * 大文字小文字の区別がない(C#はある)
 * キャストは、CType()を使用(例「Dim number2 As Integer = CType(number1, Integer)」)
  + ただし、小数を整数にキャストした場合、C#VBでは以下のような差異がある。
   ++ C#:小数点など切り捨てる
   ++ VB(Cint()):小数点以下を銀行型丸め(近似値の整数に丸め、0.5の場合は近似値の偶数になるように丸める)となる
  + キャストに関する詳細は以下のサイトを参照のこと。
http://dobon.net/vb/dotnet/beginner/cast.html

構文(変数宣言)

Dim 変数名 As 型

【例1:変数】Dim count As Integer
【例2:配列】Dim arraySample(20) As Integer