我正在尝试列出一个通用对象列表,它将在通用列表中包含不同类型的表单控件。我不是泛型的专家,之前从未使用过通用对象的通用列表。到目前为止我发现的例子对我没什么帮助。
UIObject类:
public class UIObject<T>
{
public UIObject(string Name, T _Control)
{
ControlName = Name;
ControlObject = _Control;
}
//public Type ControlType;
public T ControlObject;
public String ControlName;
}
我可以像这样创建这些对象:
UIObject<TextBox> UITextbox = new UIObject<TextBox>("FirstName Textbox", FirstName);
包含UIObjects列表的UIObjectList类:
public class UIObjectList
{
private List<UIObject<Type>> InterfaceObjects;
public UIObjectList()
{
InterfaceObjects = new List<UIObject<Type>>();
}
//Find an object by name.
public T GetInterfaceObject<T>(string Name)
{
foreach(UIObject<T> obj in InterfaceObjects)
{
if (Name == obj.ControlName) {
return obj.ControlObject;
}
}
return null;
}}
UIObjectList类是我遇到麻烦的地方。代码现在很乱,不知道如何完成我正在尝试做的事情,或者甚至可以像这样完成。 GetInterfaceObject()函数应该返回UIObject,它可以是文本框,列表框,标签等。我不知道该怎么做。
最终目标是能够做到这样的事情:
AddRecord(InterfaceDictionary.GetInterfaceObject("FirstName Textbox").Text);
其中InterfaceDictionary是一个UIObjectList对象,包含我在上面创建的UITextbox对象。
如果这没有意义,请随意提出一种不同的方法来实现这一点。