class 泛型
;sortss = new sort();//例項化乙個排序類
ss.sortt(pr);//呼叫排序函式
foreach (pression ppr in pr)
//----------測試泛型函式---------
int a = 5;
console.writeline("a -->" + a);
int b = 9;
console.writeline("b -->" + b + "/n");
pr[0].swap(ref a, ref b);
console.writeline("a-->" + a);
console.writeline("b-->" + b);
console.read();
}//先來比較一下 乙個類,實現了比較介面,這個類有兩個字段
class pression : icomparable
//--------------屬性方法、建構函式---------------
private int year;
private string name;
public int year
set
}public string name
set
}public pression(string _name, int _year)
public pression()
//-------------------------------------
//------------實現比較的介面----------
#region icomparable成員
int icomparable.compareto(pression other)
#endregion
//----------重寫了tostring方法---------
public override string tostring()
}//----排序的類,要求要排序的物件實現了比較的介面----
class sortwhere t : icomparable}}
}
c 泛型約束
在定義泛型類時,可以對客戶端 能夠在例項化類時用於型別引數的型別種類施加限制。如果客戶端 嘗試使用某個約束所不允許的型別來例項化類,則會產生編譯時錯誤。這些限制稱為約束。約束是使用 where 上下文關鍵字指定的。下表列出了六種型別的約束 約束說明 t struct 型別引數必須是值型別。可以指定除...
C 泛型約束
約束告知編譯器型別引數必須具備的功能。在沒有任何約束的情況下,型別引數可以是任何型別。編譯器只能假定 system.object 的成員,它是任何 net 型別的最終基類。有關詳細資訊,請參閱使用約束的原因。如果客戶端 嘗試使用約束所不允許的型別來例項化類,則會產生編譯時錯誤。通過使用where上下...
C 泛型約束
一 泛型約束 預設情況下,泛型的型別引數可以是任何型別的。為什麼要使用型別引數的約束呢?簡單點說就是篩選型別引數,在使用泛型的 中如果違反了某個約束不允許的型別來例項化則會產生編譯錯誤,型別引數的約束是使用關鍵字where。下面列出了6中型別的約束 泛型約束有以下幾種 where t base cl...