2013-09-23 84 views
1

我剛剛開始學習C#並使用Tutorials Point來做到這一點。在陣列上的部分,我一直看到聲明C#動態數組初始化[優點?]

string[] sarray = { "Hello", "From", "Tutorials", "Point" }; 

或者其他幾次都是這樣的數組:

int [] marks = new int[5] { 99, 98, 92, 97, 95 }; 

從C即將++,聲明的第一種方法是不是所有的新的給我,但第二個是我不明白的那個。問題是如果數組要動態初始化,那麼爲什麼使用大括號初始化列表來指定數組的內容?

初始化第二個方法是否有優勢?

+1

的可能重複的[所有可能的C#數組初始化語法(http://stackoverflow.com/questions/5678216/all-possible-c-sharp-array-initialization -syntaxes) – Romoku

+0

第一個和第二個示例之間的區別是語法。有幾種樣式來初始化數組。我建議使用['List(T)'](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx),因爲它的行爲更像C++'vector'類型。 – Romoku

回答

6

沒有優勢。這是一個編碼偏好的事情。

你甚至可以省略只是大小的部分,例如:

int[] marks = new int[] {99, 98, 92, 97, 95}; 

退房的MSDN更多信息:http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

+1

你甚至不需要int []部分在右邊,'int [] abc = new [] {99,98,92,97,95};'工作得很好 – Save

+0

好的,謝謝你,我只是認爲它能夠將一個函數傳遞給一個函數,因爲它們都被初始化了,所以它不能與另一個函數做到這一點 – smac89

3

第一條語句隱含一樣

string[] sarray = new string[5] { "Hello", ... }; 

一種風格比另一種風格沒有優勢,保存個人喜好。我傾向於寫的第二條語句作爲

var marks = new [] { 99, 98, ... }; 
+0

感謝您的迴應 – smac89