回覆列表
  • 1 # 使用者3232208945421566

      方法是在一對大括號中,使用一個以逗號分隔的資料項列表。程式碼清單2-30聲明瞭一個字串陣列,然後在一對大括號中指定了9種不同的程式語言的名稱。  宣告陣列的同時進行賦值  string[] languages = { C#, COBOL, Java,C++, Visual Basic, Pascal,Fortran, Lisp, J#};  在這個以逗號分隔的列表中,第一項成為陣列的第一個元素,第二項成為第二個元素,依此類推。我們使用大括號來定義一個數組字面量。只有在同一個語句中宣告並賦值時,程式碼清單2-30的賦值語法才可用。如果是在聲明瞭之後才進行賦值,則需要使用new關鍵字和對應的資料型別,如程式碼清單2-31所示。  程式碼清單2-31 宣告之後再進行陣列賦值  string[] languages;languages = new string[]{C#, COBOL, Java,C++, Visual Basic, Pascal,Fortran, Lisp, J# };   C#還支援將new關鍵字作為宣告語句的一部分使用,所以它允許像程式碼清單2-32那樣的賦值和宣告。  程式碼清單2-32 宣告的同時使用new進行陣列賦值  string[] languages = new string[]{C#, COBOL, Java,C++, Visual Basic, Pascal,Fortran, Lisp, J#};   使用new關鍵字是告訴“執行時”為資料型別分配記憶體。它指示“執行時”例項化資料型別——本例是一個數組。  任何時候將new關鍵字作為陣列賦值的一部分使用,都可以同時在方括號內指定陣列的大小。程式碼清單2-33演示了這個語法。  程式碼清單2-33 使用new關鍵字進行宣告和賦值  string[] languages = new string[9]{C#, COBOL, Java,C++, Visual Basic, Pascal,Fortran, Lisp, J#};在初始化語句中,陣列的大小和大括號中包含的元素數量必須匹配。除此之外,也可以分配一個數組,但不指定它的初始值,如程式碼清單2-34所示。  程式碼清單2-34 分配陣列,但不指定初始值  string[] languages = new string[9];   分配一個數組但不指定初始值仍然會初始化每個元素。“執行時”會將每個元素初始化為它們的預設值,如下所示:  引用型別(比如string)初始化為null;  數值型別初始化為零;  bool初始化為false;  char初始化為\0。  其結果就是,在使用之前,不必單獨對陣列的每個元素進行賦值。  在C# 2.0中,可以使用default()運算子來判斷一種資料型別的預設值。default()獲取一個數據型別作為引數。例如,default(int)會返回0,而default(char)會返回\0。  由於陣列大小不被作為變數宣告的一部分,所以可以在執行時指定陣列大小。例如,程式碼清單2-35根據在Console.ReadLine()呼叫中由使用者指定的大小來建立一個數組。  程式碼清單2-35 在執行時定義陣列大小  string[] groceryList;System.Console.Write(How many items on the list? );int size = int.Parse(System.Console.ReadLine());groceryList = new string[size];// ...  C#採取類似的方式來處理多維陣列。要以逗號分隔每一維上的大小。程式碼清單2-36初始化了一個沒有走棋的tic-tac-toe棋盤。  程式碼清單2-36 宣告一個二維陣列  int[,] cells = int[3,3];  還可以像程式碼清單2-37那樣,將一個tic-tac-toe棋盤初始化成特定的棋子佈局。  初始化一個二維整數陣列  int[,] cells = {{1, 0, 2},{1, 2, 0},{1, 2, 1}};  初始化採用的模式是一個有3個int[]型別的元素的陣列,每個元素都具有相同的大小。在本例中,這個大小是3。注意,每個int[]元素的維必須是完全一致的。也就是說,像程式碼清單2-38那樣的宣告是無效的。

  • 中秋節和大豐收的關聯?
  • 熱帶魚什麼時候繁殖?