如何像传递变量一样将差异类型传递到函数中
本文关键字:类型 异类 函数 一样 变量 何像传 | 更新日期: 2023-09-27 18:28:05
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();
使用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
我真的不确定,但我认为你试图推广控件的创建,不如这样做:
ifactory.AddControl(() => { new datepickerclass() });
public void AddControl<T>(Func<T> factory)
where T : BaseControlType
{
var instanceOfControl = factory();