DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

VB.NET、C#変換表

下の表では、VB.NETとC#とで同じ役割を果たしているであろうものをそれぞれを対応させて紹介しています。見やすくするため、分類のようなことをしていますが、これはかなりいい加減です。説明のほとんどはVB.NETの方のMSDNでの説明をのせています。

Visual Basic、Visual J#、C++、C#、JScript、F#の比較は、ヘルプの「各言語の比較」が参考になります。

VB.NET C# 説明(ほとんどの場合VB.NETのMSDNより)
アクセス修飾子
Public public 宣言する 1 つ以上のプログラミング要素にパブリック アクセスを設定するキーワードです。パブリック アクセスを指定した要素のアクセシビリティには制約はありません。
Protected protected 宣言する 1 つ以上のプログラミング要素にプロテクト アクセスを設定するキーワードです。プロテクト アクセスを指定した要素には、そのクラス自体または派生クラスからだけアクセスできます。プロテクト アクセスはフレンド アクセスのスーパーセットではありません。
Friend internal 宣言する 1 つ以上のプログラミング要素にフレンド アクセスを設定するキーワードです。フレンド アクセスを指定した要素には、その宣言が含まれているプログラム、および同じアセンブリ内のその他の場所からアクセスできます。
Protected Friend protected internal 宣言される要素にはフレンド アクセスとプロテクト アクセスの両方が設定され、同じアセンブリ、要素自体のクラス、およびすべての派生クラスから要素にアクセスできます。
Private private 宣言する 1 つ以上のプログラミング要素にプライベート アクセスを設定するキーワードです。プライベート要素には、宣言コンテキストの中からだけアクセスできます。入れ子になったプロシージャの内部や入れ子になった列挙体の代入式の内部など、入れ子になった型のメンバからもアクセスできます。
修飾子
Shared static 宣言する 1 つ以上のプログラミング要素が共有されることを示すキーワードです。共有されている要素は、クラスや構造体の特定のインスタンスに関連付けられていません。共有されている要素にアクセスするには、クラス名や構造体名、またはクラスや構造体の特定のインスタンスの変数名を使用して修飾します。
Overridable virtual プロパティやメソッドを派生クラスでオーバーライドできることを示すキーワードです。
Overrides override プロパティやメソッドが基本クラスから継承したメンバをオーバーライドすることを示すキーワードです。
MustOverride abstract 派生クラスでオーバーライドしないと使用できない基本クラスのプロパティやプロシージャを示すキーワードです。
MustInherit abstract インスタンス化できず、基本クラスとしてだけ使用できるクラスを示すキーワードです。
NotOverridable sealed 派生クラスでオーバーライドできないプロパティまたはプロシージャを示すキーワードです。
NotInheritable sealed 基本クラスとして使用できないクラスを示すキーワードです。
Overloads (指定する必要なし) 名前は既存のメンバと同じでも、引数リストが元のメンバとは異なるプロパティやメソッドを宣言するキーワードです。
Shadows new 宣言したプログラミング要素が、基本クラスで同じ名前を持つ要素、またはオーバーロードされた要素のセットをシャドウすることを示すキーワードです。宣言された要素は、ほかの任意の種類の要素でシャドウできます。シャドウされた要素は、その要素をシャドウする派生クラスでは使用できません。
ByRef ref(呼び出し側で明示的に代入が必要)
out(呼び出される側で代入が必要)
引数を渡す方法としてキーワード ByRef を指定すると、呼び出されたプロシージャは、呼び出しコードの引数の基になる変数の値を変更できます。
クラス
New (クラスと同じ名前) クラスのコンストラクタ
Finalize ~(クラスと同じ名前) クラスのデストラクタ
Inherits class DerivedClass: BaseClass 現在のクラスまたはインターフェイスの属性、フィールド、プロパティ、メソッド、およびイベントを別のクラスまたはインターフェイスから継承します。
Implements class DerivedClass: BaseInterface インターフェイスが出現するクラスまたは構造体の定義に実装される、複数のインターフェイス、またはインターフェイス メンバを指定します。
演算子
GetType() typeof() 指定された型の型オブジェクトを返します。
Ctype () キャスト
Me this 実行される型のインスタンスを保持する変数への参照 (値型の場合) か、または実行される型のインスタンスへの直接参照 (参照型の場合) です。
MyBase base クラスの現在のインスタンスの基本クラスを参照するオブジェクト変数と同じように動作するキーワードです。
ステートメント
Imports using 参照先のプロジェクトとアセンブリから名前空間の名前をインポートします。また、ステートメントを使用するファイルと同じプロジェクト内に定義された、名前空間の名前をインポートします。
Implements interface 現在のクラスまたはインターフェイスの属性、フィールド、プロパティ、メソッド、およびイベントを別のクラスまたはインターフェイスから継承します。
Structure struct 構造体を宣言してそのメンバの特性を定義するために、モジュール レベルまたはクラス レベルで使用します。
Property
Get
Set
Value

get
set
value
プロパティの値を設定および取得するためのプロパティ プロシージャ、およびプロパティの名前を宣言します。
Select Case 〜
Case 〜
Case Else 〜
End Select
switch(〜){
case 〜
default:〜
}
条件式の値に従って、複数のステートメント ブロックのいずれかを実行させるフロー制御ステートメントです。
SyncLock lock ステートメントを 1 つの式に同期させることができます。
  • 履歴:
  • 2011/4/26 コメントで指摘された間違いを修正。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。