第三部分 基本類型:第15章 數組

來源:互聯網
上載者:User

標籤:des   cWeb   style   blog   color   使用   os   strong   

派生關係:
System.Object => System.Array => 數組

數組是參考型別,是在託管堆上進行分配的。

Int32[] myIntegers;          //聲明了一個數組引用,初始設定為nullmyIntegers = new Int32[100]; //建立了含有100個Int32的數組,初始化為0。該數組的記憶體塊地址被返回並儲存到myIntegers變數中


建立參考型別數組:

Control[] myControls;          //聲明一個數組引用myControls = new Control[150]; //建立含有50個Control引用的數組,分配含有50個Control引用的一個數組,這些引用全部被初始化為null。

 

 

建立多維陣列:

//建立二維數組,由Double值構成Double[,] myDoubles = new Double[10,20];//建立三維數組,由String引用構成String[,,] myStrings = new String[5,3,10];

 

CLR支援交錯數組(jagged array),即由數組構成的數組。
如何建立多邊形數組,每個多邊形由一個Point執行個體數組構成:

//建立含有Point數組的一維數組Point[][] myPolygons = new Point[3][];//myPolygons[0]引用一個含有10個Point執行個體的數組myPloygons[0] = new Point[10];//myPolygons[1]引用一個含有20個Point執行個體的數組myPolygons[1] = new Point[20];//myPloygons[2]引用一個含有30個Point執行個體的數組myPloygons[2] = new Point[30];//顯示第一個多邊形中的Pointfor(Int32 x=0;x < myPloygons[0].Length; x++){Console.WriteLine(myPloygons[0][x]);}

 

 

16.1 初始化數組元素


String[] name = new String[]{"Aidan","Grant"}; //大括弧中以逗號分隔的資料項目稱為數組初始化器,每個資料項目都可以是一個任意複雜度的運算式。

文法糖簡寫:
String[] names ={"Aidan","Grant"};
但不允許寫成:
var names ={"Aidan","Grant"};  //需要編譯器做的太多了,所以報錯

可利用C#的隱式類型的數組功能讓編譯器推斷數組元素的類型:
下面代碼沒有在new和[]之間指定類型:

var names = new[]{"Aidan","Grant",null}; //null可轉型為任意參考型別(包括String),所以推斷為String類型

//使用C#的隱式類型的局部變數和隱式類型的數組功能:(錯誤)

var names = new[] {"Adia","Grant",123}; //報錯:找不到隱式類型數組的最佳類型,因為string和int32共同基類是Object,所以不得不建立Object引用的數組,然後對123進行裝箱。C#團隊認為裝箱代價高昂,所以編譯報錯。

 

“隱式類型的數組”如何與“匿名型別”和“隱式類型的局部變數”組合使用:

//使用C#的隱式類型的局部變數、隱式類型的數組和匿名型別功能:var kids = new[]{new {Name="Aian"},new {Name="Crant"}};
//樣本用法(用了另一個隱式類型的局部變數):foreach(var kid in kids){  Console.WriteLine(kid.Name);}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.