2017-01-23 49 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

恰好'Me.variable1'什麼之後?你在改變陣列成員的數量嗎? VB語句創建一個空數組。元素是否稍後添加?如果是這樣,請考慮使用'System.Collections.ArrayList'或任何其他合適的集合。 –

+0

請注意,dupe鏈接是「約」1,030,000谷歌命中「c#實例化數組」(搜索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[]{}應該工作。它只是創建一個空數組。

不幸的是,你將無法向這個數組添加任何東西,但是如果你從別的東西(例如服務或其他調用)獲得數組,你可以將該數組分配給這個數組。

這是一個工作示例。

https://dotnetfiddle.net/1xY2XV

+0

@ upvoter,小心指定這個有問題的答案是如何有用的。 '它只是創建一個空的數組''如何用'==' –

+0

編輯它。謝謝@不幸運! –