更新 : 2007 年 11 月
目的 | Visual Basic | C++ | C# | JScript | Visual FoxPro |
|---|
配列の宣言 | Dim a() As Long | int x[5]; | int[] x = new int[5]; | var x : int[] var arr = Array() | DIMENSION DECLARE |
配列の初期化 | Dim a() As Long = {3, 4, 5} | int x[5]= {1,2,3,4,5}; | int[] x = new int[5] {1, 2, 3, 4, 5}; | var x : int[] = [1, 2, 3, 4, 5] var arr = new Array(1, 2, 3, 4, 5)] | x[1] = 1 x[2] = 2 |
配列の再割り当て | Redim | 適用なし | 適用なし | arr.length=newSize (JScript の配列のみ) 10 | DIMENSION DECLARE |
1Visual Basic では、Static を変数の宣言として使用できるのは、プロシージャ内部だけです。たとえば、Static x As Long をプロシージャの外部で宣言することはできません。
2Visual Basic では、Sub キーワードで宣言されたプロシージャは値を返すことができません。プロシージャが値を返すようにするには、Function キーワードで宣言する必要があります。
3Visual Basic では、Me はコンパイル時に解決されないため、プロパティやメソッドの戻り値として使用できます。
4 JScript では、substr 関数はサポートされていますが、文字列内の文字にアクセスする方法としては、現在は推奨されていません。文字列の特定の位置から文字にアクセスする最も効率的な方法は、角かっこを使うことです。たとえば、文字列 str の 10 番目の文字にアクセスするには、str[10] を使用します。
5Visual Basic では、.NET Framework の System..::.Object から派生するクラスのコンストラクタは、常に New という名前になります。
6 JScript では、コンストラクタのオーバーロードは使用できません。
7 通常、このようなメソッドのコードは、ガベージ コレクタによって自動的に解放されないシステム リソースを解放します。
8 C++ では、抽象クラスに 1 つ以上の純粋な仮想メンバを含めます。
9 JScript では、Visual Basic と異なり、先行するピリオドは使用されません。変数とプロパティは互いに間違えられることがあるので、この機能は混乱を招きやすいと考えられます。また、with ステートメントを使うとコードの実行速度が低下することにも注意してください。
10 JScript では、これによって配列が再配置されることも、"増加" することもありません。JScript の配列 (Array 型として宣言) は、常に疎であり、また動的です。ネイティブ配列 (System..::.Array または type[] として宣言) は動的ではありません。
11 非共有のクラス メソッドにおける静的なローカル変数は、Visual Basic ではクラス インスタンスごとに格納され、その他の言語では単一のコピーを共有します。Static を変数の宣言に使用したとき、変数が解放されてから再度スコープを入手しても、その変数の値は予約されています。
参照
その他の技術情報