第三部分 基本型別 第16章 陣列

2022-03-09 21:36:24 字數 1970 閱讀 8680

派生關係:

system.object => system.array => 陣列

陣列是引用型別,是在託管堆上進行分配的。

int32 myintegers;          //

宣告了乙個陣列引用,初始設定為null

myintegers = 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

];//

顯示第乙個多邊形中的point

for(int32 x=0;x < myploygons[0].length; x++)

16.1 初始化陣列元素

string name = new string; //大括號中以逗號分隔的資料項稱為陣列初始化器,每個資料項都可以是乙個任意複雜度的表示式。

語法糖簡寫:

string names =;

但不允許寫成:

var names =;  //需要編譯器做的太多了,所以報錯

可利用c#的隱式型別的陣列功能讓編譯器推斷陣列元素的型別:

下面**沒有在new和之間指定型別:

var names = new; //

null可轉型為任意引用型別(包括string),所以推斷為string型別

//使用c#的隱式型別的區域性變數和隱式型別的陣列功能:(錯誤)

var names = new ; //

報錯:找不到隱式型別陣列的最佳型別,因為string和int32共同基類是object,所以不得不建立object引用的陣列,然後對123進行裝箱。c#團隊認為裝箱代價高昂,所以編譯報錯。

「隱式型別的陣列」如何與「匿名型別」和「隱式型別的區域性變數」組合使用:

//

使用c#的隱式型別的區域性變數、隱式型別的陣列和匿名型別功能:

var kids = new,new };

//

示例用法(用了另乙個隱式型別的區域性變數):

foreach(var kid in

kids)

劇本第三部分

第三部分劇本 場景一 女生宿舍,a趴在桌子上睡覺,電腦螢幕亮著,是vs 但是就寫了一行 小碼趴在a的胳膊上睡著。突然,a醒了,發現自己上課要遲到了,a 哎呀,完了完了,大中午的怎麼趴在這睡著了 邊說話邊收拾書包 轉頭看向小碼 a 把你放哪呢 說話的時候四周環視 算了,跟我去吧,我先把你放書包裡 說話...

第三部分 效能

索引管理 效能優化 效能監控 db.c1.find explain 查詢的詳細資訊列出來 db.c1.getindexkyes 所有索引的字段 db.c1.getindexes 所有索引的相關資訊 2 唯一索引 只需要在ensureindex命令中提定 uniqure true 即可建立唯一索引,如...

sqlalchemy第三部分

1.復用。在我們用sqlalchemy運算元據庫時,有部分 可以重複使用,我們將這部分放到乙個模組中,後面使用就可以呼叫這個模組,匯入裡面的方法。python 1.連線資料庫 from sqlalchemy import create engine hostname 127.0.0.1 ip位址 p...