-1

DatePickerOfItemsControl、TextBoxOfItemsControl、ComboBoxOfItemsControl 是类,如何像传递变量一样将这些类传递给函数

用于将这些类或类型保存为变量并在需要时使用它来创建实例的函数

ifactory.AddControl(DatePickerOfItemsControl);
ifactory.AddControl(TextBoxOfItemsControl);
//ifactory.AddControl(textbox2);
ifactory.AddControl(ComboBoxOfItemsControl);
ifactory.AddControl(RadioBoxOfItemsControl);

public void AddControl(Object c)
{
    datepickerclass = DatePickerOfItemsControl;


public void Apply()
{
     datepickerclass datepicker = new datepickerclass();
4

2 回答 2

1

使用Type

public void AddControl(Type c)
{

}

您可以使用Activator.CreateInstance()来创建以下类型的实例:

public void AddControl(Type c)
{
    object o = Activator.CreateInstance(c);
}

然后像这样调用它:

AddControl(typeof(RadioBoxOfItemsControl));

见 MSDN -

http://msdn.microsoft.com/en-us/library/wccyzw83.aspx

于 2013-08-19T08:53:18.673 回答
0

我不太确定,但我认为您试图概括控件的创建,那么这样的事情怎么样:

ifactory.AddControl(() => { new datepickerclass() });

public void AddControl<T>(Func<T> factory)
    where T : BaseControlType
{
    var instanceOfControl = factory();
于 2013-08-19T09:08:41.623 回答