對於該問題,有兩大基本陣營。一方認為「單個字母」的型別引數名稱更好,因為它減少了泛型宣告的簽名的大小,這是被大多數
c++模板庫所使用的模式。另一方認為乙個字母過於簡短,不足以表達型別引數的本質意義,他們希望用長一點的、更具有表述性的名字。
用中國話最好來解釋了:具體問題具體分析,在兩種方法之間折中處理。
下面的例子極好的表現了這一點:
public class dictionary{}
public class dictionary
簡單的不需要解釋
j看例子
jpublic void processitem(mytype1value, int status)
else
} 使用別名後可以簡化為:
using mtype = mytype1;
public void processitem(mtype value, int status)
else
}
C 泛型程式設計指導原則 12 14
在一些時候,你很希望引入自己定義的泛型集合。典型來講,自定義的泛型集合都應該由現有的來 collection 擴充套件。這樣就可以繼承它的行為,並且可以根據自己特定的需要來補充或者修改其功能。在這些情況下,你可能嘗試使自定義泛型集合擴充套件自 list list 毫無爭議的是 system.coll...
C 泛型程式設計指導原則 17 18
當使用約束的時候,可以選擇對任何乙個型別引數使用多重約束。事實上,你可以將單獨的類約束與多重介面約束聯合使用。當你開始混合並匹配多重約束的時候,可能引入含糊不清的約束。如 public inte ce i public class c public class testclasswhere t c,...
c 泛型程式設計
對於兩個不同的概念a和b,如果概念a所需求的所有功能也是概念b所需求的功能,那麼就說概念b是概念a的子概念。例如 標準模板庫 standard template library,簡稱stl 提供了一些非常常用的資料結構和演算法 將函式物件作為演算法的引數而不是將函式所執行的運算作為演算法的一部分。使...