我正在編寫一個反映我的類並將它們轉換爲UI字段的編輯器,以便通過更改UI中字段的值並保存它們來創建對象文件。如何獲得通用列表中的T類型
問題是,當我使用通用列表時,編輯器構建器停止,因爲它不知道列表中對象的類型以反映它,它始終將對象視爲object
。
我只需要知道列表或字典中的對象的類型以反映它。
驗證碼:
class ListUIEditor<T> : BaseEditor where T : new()
{
void BuildEditor()
{
Button addbutton = new Button("+");
addbutton.Clicked += add_Event;
for (int i = 0; i < ((List<T>)base.boundObject).Count; i++)
{
container = new Container();
ObjectUIEditor editor = new ObjectUIEditor("itemName",
((List<T>)base.boundObject)[i],
container);
editor.buildEditor();
itemsSubEditors.Add(i, editor);
}
}
protected void add_Event(object sender, EventArgs e)
{
T newObject = new T();
container = new Container();
ObjectUIEditor editor = new ObjectUIEditor("itemName", newObject, container);
editor.buildEditor();
itemsBox.ShowAll();
}
}
的可能重複(HTTP [C#泛型列表如何得到T的類型?]:// stackoverflow.com/questions/557340/c-sharp-generic-list-t-how-to-get-the-type-of-t) –
nawfal
我看到了這個問題,但不同的是,我不是要求類型的T中包含它的ame類: 「您的列表與容器類本身具有相同的類型參數。」 – user2302005
這一個也返回類型:對象 不是我想要的類 – user2302005