泛型和約束

2022-03-31 17:18:05 字數 323 閱讀 5343

有時要確保泛型類使用的型別引數是提供了特定方法的型別。

例如:假設要定義乙個printablecollection類,但是又想該類儲存的所有物件都提供了print方法,可以用約束來規定該條件。

定義printablecollection類如下:

1

public

class printablecollectionwhere t : iprintable

這個類編譯時,編譯器會驗證用於替換t的型別實現了iprintable介面,如果沒有實現這個介面,會出錯

c 泛型約束

在定義泛型類時,可以對客戶端 能夠在例項化類時用於型別引數的型別種類施加限制。如果客戶端 嘗試使用某個約束所不允許的型別來例項化類,則會產生編譯時錯誤。這些限制稱為約束。約束是使用 where 上下文關鍵字指定的。下表列出了六種型別的約束 約束說明 t struct 型別引數必須是值型別。可以指定除...

泛型型別約束

where 泛型型別約束 c 參考 visual studio 2015 其他版本 在泛型型別定義中,where 子句用於指定對下列型別的約束 這些型別可用作泛型宣告中定義的型別引數的實參。例如,可以宣告乙個泛型類 mygenericclass,這樣,型別引數 t 就可以實現 icomparable...

where泛型約束

where用於指定型別約束,這些約束可以作為泛型宣告中定義的型別引數的變數.如下 public class mygenericclasswhere t icomparable 除了介面約束,where還可以包括基類約束,以指出某個型別必須將指定的類作為基類 或者就是該類本身 才能用作該泛型的型別引數...