一位同事指出我在C#中一個奇怪的例子(不太確定這是否真的很奇怪)。
假設你有一個Employee類。如果你想創建Employee類型的泛型列表<>,你可以簡單地做:
爲什麼在C#泛型中這是不可能的?
List<Employee> x = new List<Employee>;
我明白,我需要的員工類型傳遞到泛型列表,以便它知道所需要的類型信息Employee並生成返回並接受與Employee兼容的參數的方法。
現在我的問題是,爲什麼不可能做到以下幾點?
Employee x = new Employee();
List<typeof(x)> list = new List<typeof(x)>();
不應該這樣足夠了名單<所需的信息>瞭解,爲了創建一個列表?換句話說,作爲Employee類型的x的類型現在作爲一個泛型類型參數傳遞給列表<>,它(與我以前相信的一樣)與傳遞列表類型名稱相同(在本例中爲Employee) 。
我知道類似這樣的東西在Java中使用(使用.class)關鍵字在變量上。
我敢肯定,我錯過了一些東西,所以請,讓我這些傢伙!
好的代碼示例。如果你在'list'變量上使用'typeof',會發生什麼? – FrustratedWithFormsDesigner 2010-02-03 15:09:41
typeof(list)會導致編譯錯誤。 – 2010-02-03 15:21:26
喬恩,謝謝你的詳細解答!由於這是編譯時間信息,所以我正處在正確的軌道上。說到它是否有用,雖然有些爭議;)。 – Galilyou 2010-02-03 15:36:27