2009-11-12 103 views
0

1)當我有泛型方法的語法澄清

Static void Sample<T>(T a,T b) 

是否申報樣品強制執行,所有參數必須是T型的?

2)是否聲明Static void Sample(T a,T b)不是通用方法,除非我指定 Sample<T>

回答

1
  1. 的確,在你的例子中,兩個參數都是T類型的,因此需要..um ..是類型T.你當然可以聲明一個使用不同類型的方法。

    靜態無效樣品<牛逼>(T一,SOMETYPE B)

  2. 是,除非你指定樣品<牛逼>(T一,T二)它不是一般的

1

1)是

2)是的,這是通用方法的無效語法

編輯:更幾乎是瞬間的回答:)

+0

:) ofcourse我的標題是澄清不解釋。 – user196546 2009-11-12 03:10:37

1
  1. 是,聲明強制執行所有聲明的參數必須是T類型的

  2. static void Sample(T a, T b)編譯失敗(除非你有一個類型T),因爲它不是一個通用的聲明。你需要聲明是一個通用的。

5

1)否,Static void Sample<T>(T a,T b)不強制所有參數都是T類型。您也可以在方法參數中包含其他參數。編輯: - 你可以有樣本(T a,int b,字符串s)(如果這是你的意思)

2)是的,Static void Sample(T a,T b)是非通用的,編譯器會拋出類型T的異常(如果你不沒有一個分類名爲T)