我有一个类,它有一个带有多个重载的方法,如下所示
QStandardItem * item = new QStandardItem();
item->setText("someText");
item->setCheckable(true);
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Checked, Qt::CheckStateRole);
m_model->appendRow(item);
m_ComboBox->setModel(m_model);
在另一个类中,我有一个按钮单击事件处理程序,它根据用户输入构建应传递给上述方法的参数列表:
class MyClass
{
public bool DoSomething(string linkedServerName, string serverName, string instanceName, string userName, string Password)
{
// OverLoad1
// do stuff
}
public bool DoSomething(string linkedServerName, string serverName, string instanceName)
{
// OverLoad2
// do stuff
}
public bool DoSomething(string linkedServerName, string serverName, string userName, string Password)
{
// OverLoad3
// do stuff
}
public bool DoSomething(string linkedServerName, string serverName)
{
// OverLoad4
// do stuff
}
private bool DoSomething(List<SqlParameter> parms)
{
// OverLoad5
// do stuff
}
}
我已经获得了我想调用的方法,该方法在变量m中被引用,但我不确定如何调用。我知道MethodInfo类有一个Invoke方法,我试过了:
public class MyForm : Form
{
// code...
private void Button1_Click(object sernder, EventArgs e)
{
List<String> parms = New List<String>();
//code here which will populate the above list with values dependant on which text boxes the user has filled in
Type t = new MyClass().GetType();
Type[] ts = new Type[parms.Count];
for (int i=0; i< parms.Count; i++)
{
ts[i] = typeof(string);
}
System.Reflection.MethodInfo m = t.GetMethod("CreateLinkedServer",ts)
// how do I invoke the method referenced in m??
}
}
他们都没有工作