是否可以在.Net 3.5中进行通用控制?

Rob*_*ini 10 .net c# generics user-controls winforms

我声明了以下Generic usercontrol:

public partial class MessageBase<T> : UserControl
    {
        protected T myEntry;
        public MessageBase()
        {
            InitializeComponent();
        }
        public MessageBase(T newEntry)
        {
            InitializeComponent();
            myEntry = newEntry;
        }    
    }
}
Run Code Online (Sandbox Code Playgroud)

但编译器不允许我这样做:

public partial class MessageControl : MessageBase<Post>
{
    public MessageControl()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在C#中创建通用用户控件?

rnw*_*ood 16

试试这个

public partial class MessageControl : MessageControlBase
{    
    public MessageControl()    
    {
        InitializeComponent();    
    }
}

public class MessageControlBase : MessageBase<Post>
{}
Run Code Online (Sandbox Code Playgroud)

让设计人员工作的关键是你正在编辑的类的基类不能是通用的.