2017-01-23 3 views
-1

いくつかのレガシーVBコードをC#に変換します。C#で配列をインスタンス化する - VBから変換する

元のコードはMe.variable1 = New Integer() {}です。

変換ウェブサイトを使用して、回答をthis.variable1 == new int[]として取得します。 しかし、IDEは「[]内のインデックスの数が間違っています(予想1)」というエラーを表示します。 配列のサイズを宣言しなければならないようです。

VBコードではどのくらいの大きさの配列がありますか?サイズ1ですか、サイズなしですか?

ありがとうございます!

+0

[配列チュートリアル](https://msdn.microsoft.com/en-us/library/aa288453(V = vs.71).aspxの) – Plutonix

+0

?配列メンバーの数を変更していますか? VBステートメントは、空の配列を作成します。後で要素が追加されますか?もしそうなら、 'System.Collections.ArrayList'や他の適切なコレクションの使用を検討してください。 –

+0

dupeリンクは、 "約#1,030,000 google hit"の "C#Instantiate array"(SOだけ検索)のリストの項目#1でした。 – Plutonix

答えて

1

==はここでは代入演算子ではなく比較演算子として使用されます。あなたは割り当てのために=を使用しなければなりません。配列のサイズを指定する必要があります。そうでなければ、要素を初期化する必要があります。

this.variable1 = new int[10]; 

またはこのような:だから、このように使用する必要があります

this.variable1 = new int[] { 10, 12, 15, 3, 2, 4, 19 }; 

この(int[] variable1 = new int[] { };)空の配列の有効な宣言ですが、この配列には何を割り当てることはできません。

+0

ありがとう! VBコーディングは空の配列を作成するので、VBコードで作成された空の配列に要素を追加できますか? – DennisL

2

this.variable1 = new int[]{}が有効です。空の配列を作成するだけです。

Unluckyは正しいですが、この配列に何も追加することはできませんが、配列を別のもの(サービスや別の呼び出しなど)から取得した場合は、その配列をこの配列に割り当てることができます。

ここでは動作例を示します。その後Me.variable1` `はどう

https://dotnetfiddle.net/1xY2XV

+0

@ upvoter、このバグの答えがどのように役立つかを指定してください。 '空の配列を作成するだけです' '=='でどのようにできるか –

+0

編集しました。ありがとう@幸運にも! –

関連する問題