陣列 CLR學習第十三課

2022-01-29 05:53:48 字數 1090 閱讀 5152

一、陣列是引用型別,值型別的陣列也是引用型別。

二、int myint;  myint = new int[100];

首先myint被神秘為乙個指向元素型別int的一維陣列變數,此時myint被設定為null

。當分配100個int的陣列時,所有這些int元素值都被初始化為0.雖然int屬於值型別

,單儲存這些int值的記憶體塊卻是從託管堆中分配的。該記憶體包含100個為裝箱的int

值,最後**返回儲存這些int值的記憶體塊位址,並將其儲存在變數myint中。

control myctr; myctr= new control[50];

首先myctr被設定為null,然後分配乙個包含50個control引用的陣列,所有這些

control的引用都被初始化為null,因為control屬於引用型別,所有我們建立的僅僅

是引用,而不是實際的物件,最後**返回儲存這些引用的記憶體位址,並將其儲存在

變數myctr中。

三、盡可能使用0基數組,在各種型別陣列中其效能最好,相容cls(交錯陣列不相容

cls);索引超出丟擲system.indexoutofrangeexception異常。

四、所有陣列繼承自system.array,其共實現了icloneable、ienumerable、

icollection、ilist介面;clr不允許將元素為值型別的陣列轉換為其他任何型別,

其是通過,array.copy(將值型別裝箱為引用型別;將引用型別裝箱為值型別,拓寬

clr基元型別)建立來實現的,並且其是淺拷貝。引用型別元素的陣列,可以實現顯

示或者隱式轉換為另一種型別。

五、陣列總是以引用的方式傳遞給方法的,array.copy是淺拷貝,如果源陣列中的元

素是引用型別,該方法返回的新陣列中的元素將指向源陣列中元素所引用的物件;實

現陣列的深拷貝方法是實現icloneable介面,將乙個物件序列化到乙個

system.io.memorystream中,然後再立即對該記憶體流執行反序列化,從而得到乙個新

的物件,效能損失、有可能所有的物件都被序列化。

六、可以建立下限非0的陣列,用array.createinstance方法。

第十三課 彙編基礎學習 十三

請注意 該動畫內如含廣告與本站無任何關係,為作者個人宣傳,網路交易風險自負 and指令 且 and 邏輯與指令,按位進行與運算。必須兩個運算元都為1,那麼返回為1。有乙個為0,則返回為0 示例 mov al,00001000b and al,11110111b 執行後al 0 00001000b 8...

第十三課 模組

第十三課 模組 在python中,乙個py檔案就是乙個模組,檔名為 py模組名則是 匯入模組可以引用模組中已經寫好的功能。1.import語句 檔名 foo.py x 1def get print x def change global x x 0要想在另外乙個py檔案中引用foo.py中的功能,需...

python第十三課

迭代器 l 1,2,3 索引 迴圈 for for i in l i for k in dic pass enumerate print dir 告訴我列表擁有的所有方法 print dir 告訴我列表擁有的所有方法 print dir 告訴我列表擁有的所有方法 print dir range 10...