基本的言語仕様

項目 VB.net C#
大文字小文字の区別 なし あり
行の終端記号 なし ;(セミコロン)
行継続 _(アンダーバー) なし(任意に改行を入れることができる)
単行コメント ‘(アポストロフィ)または Rem //
複数行コメント なし /* ~ */
XMLコメント ”’(アポストロフィが3つ) ///(スラッシュが3つ)
文字列の結合 & +
未参照を表すキーワード Nothing null
名前空間または型のインポート・別名付与 Imports using ※注

変数・型

項目 VB.net C#
変数の宣言 Dim x As 型 型 x;
宣言と同時にインスタンス化 Dim x As New 型 型 x = New 型();
配列の添え字記号 () []
可変配列 Dim x() As 型 なし
配列の大きさの変更 ReDim なし
静的ローカル変数 Static x As 型 なし
返り値のないメソッド Subで定義 void メソッド名()

データ型

下記以外は大文字小文字の違いはあるがすべて同じ

項目 VB.net C#
整数型(符号あり) Integer int
整数型(符号なし) UInteger uint
日付型 Date DateTime
ブーリアン型 Boolean bool
単精度浮動小数点型 Single float
Null許容型 Dim x? As 型
DIm x As 型?
型? x;

算術演算子

VB.net C#
乗算 / / (型により返り値の型も変わる)
余り Mod %
累乗 ^ Math.Pow()
三項演算子 If(x, y, z) ※VS2012から導入?? x ? y : z
Null合体演算子 If(x, y) ※VS2012から導入?? x ?? y
Null条件演算子 x?.y
x?(1)
x?.y
x?[1]
インクリメント なし ++
デクリメント なし

ビット演算子

VB.net C#
ビットごとの補数 なし ~(チルダ)
ビット積 And &
ビット和 Or ^
排他的ビット和 Xor |

論理演算子

VB.net C#
論理積(短絡評価) AndAlso &&
論理和(短絡評価) OrElse ||
論理積(完全評価) And &
論理和(完全評価) Or |
否定 Not !(ビックリマーク)
等価(値型) = ==
等価(参照型) x Is y Object.ReferenceEquals(x, y)
非等価(値型) <> !=
非等価(参照型) x IsNot y !Object.ReferenceEquals(x, y)

クラス・メソッド

VB.net C#
コンストラクタ New() クラス名と同じ名前のメソッド
デストラクタ Finalize() クラス名の前にチルダを付けたの名前のメソッド
静的クラス なし static Class
※すべてのメンバがstaticであることを宣言
モジュール Module なし
静的プロパティ・静的メソッド Shared static
アクセス修飾子(同一プロジェクト内のみアクセス可能 Friend intenal
自インスタンスの参照 Me this
基底クラスの参照 MyBase base
属性 <> []
メソッド Sub~End Sub
Function~End Function
帰値の型 メソッド名(引数1, …)
引数 ByVal
ByRef(既定)
ref
out
パラメータ配列 ParamArray x As 型()
ParamArray x() As 型
params 型[] x
省略可能な引数 Optional x As 型 型 x = <省略時の既定値>

リテラル表記

VB.net C#
16進数 &HFFFF 0xFFFF
8進数 &O7777 なし
Short S なし
Integer I, % なし
UInteger UI(FW2.0で追加) u/U
Long L, & l/L
ULong UL(FW2.0で追加) UL/Ul/uL/ul/LU/Lu/lU/lu
Single F, ! f/F
Double R, # d/D
Decimal D, @ m/M
Char “a”C ‘a’
日付 #12/31/2010 12:15:00 PM# DateTime.Parse(“12/31/2010 12:15:00 PM”);

その他

VB.net C#
オブジェクト名の省略 With なし
イベントハンドラとイベントの紐づけ Handles なし
イベントの発生 RaiseEvent なし(デリゲートの直接実行?)
クラスのイベントをハンドリング WithEvents なし
型情報の取得 GetType(x) typeof(x)
型判定 TypeOf x Is y x is y
エラーを発生させずに型変換 TryCast(x, y) x as y
キャスト CType(x, y) (y)x
キャスト2 DirectCast(x, y) なし
型のサイズ なし sizeof(x)
アドレス(ポインタ) AddressOf &x
型変換関数 Clng,Cint等 なし
名前空間
LINQクエリ式 大文字小文字の区別なし 小文字のみ?
ジェネリック(型パラメータ) (Of 型) <型>
既定のアクセス範囲

その他の比較

その他、大きく異なる事項については個別に比較しています。