看來這兩個聲明是一樣的:這兩個數組聲明有什麼區別?
int[] array1 = {11, 22, 33};
和
int[] array2 = new int[] {11, 22, 33};
但什麼是這部分new int[]
第二樣品中的需要?
它有區別嗎?
看來這兩個聲明是一樣的:這兩個數組聲明有什麼區別?
int[] array1 = {11, 22, 33};
和
int[] array2 = new int[] {11, 22, 33};
但什麼是這部分new int[]
第二樣品中的需要?
它有區別嗎?
在這種情況下沒有區別 - 但第一種語法是只有可用於聲明變量。從C#4規範部分12.6:
可以在字段聲明,局部變量聲明和數組創建表達式中指定數組初始值設定項。
(以下簡稱「數組初始化」是在括號中的比特 - 和數組創建表達式中,可以指定new int[]
或任何形式)。
當你不聲明一個局部變量或字段(例如,如果你傳遞一個參數的方法),你必須使用第二個形式中,或從C#3.0可以使用一個隱式類型數組:
Foo(new[] { 1, 2, 3});
沒有區別。他們都是一樣的。
int[] array1; // declare array1 as an int array of any size
array1 = new int[10]; // array1 is a 10-element array
array1 = new int[20]; // now it's a 20-element array
int[] array2 = new int[5] {1, 2, 3, 4, 5}; // declare array 2 as an int array of size 5
兩者都是相同的。請參閱MSDN on initializing arrays。
由於您在聲明的同一行中提供了初始化程序,因此您可以省略新的操作符。
//這是行
INT [] i32Array = {1,2,3,4,5};
//這是不是
int [] i32Array; i32Array = {1,2,3,4,5};
如果你的定義,並開始在不同的線路發生了,你將不得不這樣做
i32Array =新INT [] {1,2,3,4,5};
所以,從技術上講,它可以聲明數組變量不用初始化,但是當你將數組分配給這個變量
將必須使用新的運營商都是一模一樣的
外觀此代碼:
int[] arr1={1,2,3,4};
int[] arr2= new int[]{1,2,3,4};
使用反射器中的兩個轉換爲下面:
int[] expr_07 = new int[]
{
1,
2,
3,
4
};
int[] expr_19 = new int[]
{
1,
2,
3,
4
};