C 中的where泛型約束

2021-07-28 16:57:23 字數 1275 閱讀 2611

這個關於泛型約束

的東西我看了幾天了。一直沒打看懂,我的領悟能力有點差,剛才突然明白了一點,泛型約束

的意思就是說:

類的泛型,只能是where

字句後面所寫的介面或類。

這麼說好像也有點不大明白,舉個例子。

我有乙個介面,如下:

1

///2

///國籍的介面

3///

4public

inte***ce inationality

5 11

string getnationality();

12 }

然後該介面有兩個實現,如下:

1

///2

///中國人

3///

4public

class chinese : inationality

5 13 }

1415

public

string getnationality()

16

19 }

2021

///22

///美國人

23///

24public

class american : inationality

25 30 }

3132

public

string getnationality()

33

36 }

然後建立乙個泛型類,帶有泛型約束的類,如下:

1

///2

///3

///4

///5

public

class printnationalitywhere t : inationality, new()

6 ", item.getnationality()));

11 }

12 }

由於有where

字句的泛型約束,所以,建立printnationality的物件時,t的型別只能是繼承子inationality介面的類。

1

public

class program

2 12 }

以上的**執行結果:

nationality:chinese.

nationality:american.

C 中的where泛型約束

c 中的where泛型約束 這個關於泛型約束 的東西我看了幾天了。一直沒打看懂,我的領悟能力有點差,剛才突然明白了一點,泛型約束 的意思就是說 類的泛型,只能是where 字句後面所寫的介面或類。這麼說好像也有點不大明白,舉個例子。我有乙個介面,如下 1 2 國籍的介面 3 4public inte...

C 泛型 WHERE 約束

where 子句用於指定對下列型別的約束 這些型別可用作泛型宣告中定義的型別形參的實參。public class mygenericclass t wheret icomparable t實現icomparable介面 public void request listentitylist where...

where泛型約束

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