2009-10-23 240 views
19

我要聲明包含基本類型的列表清單:聲明的類型

List<Type> types = new List<Type>() {Button, TextBox }; 

這可能嗎?

+0

你在用什麼? – 2009-10-23 20:34:11

+0

我正在處理一組函數來驗證/驗證數據用戶在表單中輸入。 – Luiscencio 2009-10-23 20:38:55

回答

45

試試這個:

List<Type> types = new List<Type>() { typeof(Button), typeof(TextBox) }; 

typeof()運算符用於返回一個類型的System.Type

對於對象實例,您可以調用從Object繼承的GetType()方法。

+4

將聲明更改爲使用'var',並且您有我的投票權。 :P – Noldorin 2009-10-23 20:34:54

+0

後人的場景略有變化:如果你有一個實例/對象,並且想要將它的類型包含在同一個列表中,使用該對象的.GetType()屬性 - 例如請參閱下面的'myButton'變量用法: Button myBtn = new Button(); List types = new List (){myBtn.GetType(),typeof(TextBox)}; – 2009-10-23 20:36:58

+0

如果這是在方法主體類型中聲明的其他地方,則var關鍵字不可用。但是,你可以(也應該)在方法中使用var。 – 2009-10-23 20:37:35

5

是,使用List<System.Type>

var types = new List<System.Type>(); 

要將項目添加到列表中,使用typeof關鍵字。

types.Add(typeof(Button)); 
types.Add(typeof(CheckBox)); 
+0

我收到一個錯誤:「按鈕是類型,但用作變量」 – Luiscencio 2009-10-23 20:31:15

1

使用類型化的泛型列表:

List<Type> lt = new List<Type>(); 
13

你幾乎擁有它的代碼。使用typeof而不僅僅是類型的名稱。

List<Type> types = new List<Type>() {typeof(Button), typeof(TextBox) }; 
4
List<Type> types = new List<Type>{typeof(String), typeof(Int32) }; 

您需要使用typeof關鍵字。