26、介面實現命名衝突:通過使用顯示介面來解決,即,在實現介面時,參考:returntype inte***cename.methodname(params);同時,需要使用顯示轉換來訪問需要的功能。
27、【.net 基礎類庫預定義介面】構建可列舉型別ienumerable和ienumerator,適用foreach關鍵字允許遍歷任何陣列型別的內容,若乙個類中,某乙個屬性是乙個陣列,則只需要將類實現ienumeable介面的getenumerator()方法,在方法中返回該屬性的getenumerator()方法即可。【當該屬性為私有屬性時適用,否則,直接在foreach處用該屬性既可以】
public class partialclass :ienumerable
;console.writeline("partialclass");
}ienumerator ienumerable.getenumerator()
}
28、用yield關鍵字構建迭代器方法,當我們希望返回能被foreach語法處理的區域性資料時,該語法很有用。
yield官方說明:
如果你在語句中使用yield
上下文關鍵字,則意味著它在其**現的方法、運算子或get
訪問器是迭代器。 通過使用yield
定義迭代器,可在實現自定義集合型別的 ienumerator 和 ienumerable 模式時無需其他顯式類(保留列舉狀態的類,有關示例,請參閱 ienumerator)。
private string stringarr = new string[4];
public partialclass()
;console.writeline("partialclass");
}public ienumerable getarrdatas(bool returnrevesed)
}else
}}
29、【.net 基礎類庫預定義介面】構建可轉殖的物件(icloneable),其中,當類中不包含引用型別變數時,可以返回this.memberwiseclone()方法逐個複製該類中的每乙個字段,但如果包括引用型別時,memberwiseclone()將這些引用複製到物件中(淺複製),若要實現深複製,需要在轉殖過程中建立各個引用型別變數的新例項。
30、比較物件之icomparable和icomparer,icomparable介面,需要實現compareto方法,分別用1,-1和0判斷兩個物件的大小,1是大於,-1是小於,0是等於;當需要指定多個排序順序時,使用icomparer介面,與icomparable介面不同,icomparer介面不是在要排序的型別中,而是在許多輔助類中實現,其中每個排序各有乙個依據(如暱稱、id等)。
//輔助類的實現
public class petnamecomparer :icomparer
}//使用
array.sort(list,new petnamecomparer);
//自定義屬性、自定義排序型別
//在型別裡
public class car : icomparable}}
//使用
array.sort(list,car.sortbypetname);
31、集合,泛型集合與非泛型集合
裝箱與拆箱:裝箱指顯示地將值型別分配給system.object變數的過程;拆箱就是指把儲存在物件引用中的值轉換回棧上的相應值型別。
int myint = 25;
//將int裝箱為object引用
object boxedint = myint;
//將引用拆箱為相應的int
int unboxedint = (int) boxedint;
非泛型集合arraylist所操作的是system.object資料,在add時(在傳遞給需要object的方法時),實際上值物件會自動裝箱,但使用型別索引器從arraylist中獲取項時,則必須使用轉換操作,即堆分配的物件拆箱成棧分配的整數,因此當資料量大時,需要考慮效能問題。
推薦使用system.collections.generic命名空間下的泛型集合類(dictionary,list,linkedlist,queue,sorteddictionary,sortedset及stack),優點:
尖括號中標記的正式名稱就是型別引數,符號讀作 of t;因此ienumerable讀作ienumerable of t,或也可稱其為型別t的列舉。
集合初始化語法:
//初始化標準的陣列
int myarrayofints = ;
//初始化整型的泛型list<>
listmygenericlist = new list;
//使用數字資料初始化arraylist
arraylist mylist = new arraylist ;
常用的泛型集合類:
32、泛型中的default,表示乙個型別引數的預設值,使用如下:x = default(t);用於設定型別引數的預設值,型別引數的預設值如下:
33、泛型型別引數的約束where關鍵字,除非要建立型別安全的自定義集合,否則很少會用到where關鍵字。
網劇《初戀了那麼多年》甜蜜開機 萬鵬王以綸邂逅初戀
5www.cppcns.com 月 27 日,由優酷 耐飛影視聯合出品的校園青春純愛劇 初戀了那麼多年 在青島正式開機。出品人慄坤 製片人王小蝦 導演丁培,攜主演王以綸 萬鵬 吳漢坤 鄭舒環 盧洋洋 魏天宇 靜芳 林子晴 王建楨等演員現身開機現場,超青春與高顏值的搭配,讓現場粉紅滿滿,戀愛氣息撲面而...
那麼多程式語言,為什麼要選擇C ?
c 程式設計主要用在客戶端的框架開發以及伺服器端開發,有些想從事程式設計的人,在寫 之前就給自己設立了遠大的目標就是要從事某個方向,有清晰目標的情況下選擇程式語言就會變得順理成章了,比如從事嵌入式開發c 語言的學習的必備的。很多人覺得c 這種程式語言語法比較糟糕,其實就是語法繁瑣一點相比別的程式語言...
說那麼多也沒一點用
不過他也因此受到了懲罰,仙界那些老傢伙頓時就不樂意了,其中乙個老古董就此出手,硬生生地將他頂上三花削去了一花,嘿嘿,這就是自作孽,不可活。痛快,真他瑪痛快!一番精彩的描述,傾盡了敖潛的萬千情緒,他似乎也因此輕鬆了不少,往事如雲,可把他壓抑得夠嗆,此時能夠發洩一番,交流一下,對敖潛來說真可謂舒爽至極。...