C#通用对象的通用列表

时间:2018-03-13 19:22:55

标签: c# generics generic-list

我正在尝试列出一个通用对象列表,它将在通用列表中包含不同类型的表单控件。我不是泛型的专家,之前从未使用过通用对象的通用列表。到目前为止我发现的例子对我没什么帮助。

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对象。

如果这没有意义,请随意提出一种不同的方法来实现这一点。

0 个答案:

没有答案