C#中數組如何賦值

來源:互聯網
上載者:User
C#中數組如何賦值

聲明數組之後,可以立即為其填儲值。方法是在一對大括弧中,使用一個以逗號分隔的資料項目列表。代碼清單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那樣的聲明是無效的。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.