C 泛型約束,泛型函式

2021-05-25 23:35:19 字數 1086 閱讀 1216

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...