My question wasn't very clear because I didn't know what I was looking for, but reflection was the answer!
private void button1_Click(object sender, EventArgs e)
{
DataTable dtPerson = new DataTable("Person");
dtPerson.Columns.Add(new DataColumn("LastName", typeof(string)));
dtPerson.Columns.Add(new DataColumn("FirstName", typeof(string)));
dtPerson.Columns.Add(new DataColumn("PartnerName", typeof(string)));
dtPerson.Rows.Add(new object[] { "Johnson", "John", "" });
dtPerson.Rows.Add(new object[] { "Rosevelt", "Mary", "Johnson" });
dtPerson.Rows.Add(new object[] { "Clinton", "Bill", "" });
string[] Fields = { "LastName", "FirstName", "PartnerName", "UseName" };
DelegateDemo myClass = new DelegateDemo();
for (int j = 0; j < dtPerson.Rows.Count; j++)
{
DataRow drPerson = dtPerson.Rows[j];
object[] mParam = new object[] { drPerson };
for (int i = 0; i <= Fields.GetUpperBound(0); i++)
{
System.Reflection.MethodInfo myMethodInfo = myClass.GetType().GetMethod(Fields[i]);
MessageBox.Show(myMethodInfo.Invoke(myClass, mParam).ToString());
}
}
}
}
class DelegateDemo
{
public virtual string LastName(DataRow drPerson)
{
return drPerson["LastName"].ToString();
}
public virtual string FirstName(DataRow drPerson)
{
return drPerson["FirstName"].ToString();
}
public virtual string PartnerName(DataRow drPerson)
{
return drPerson["PartnerName"].ToString();
}
public virtual string UseName(DataRow drPerson)
{
if (drPerson["PartnerName"].ToString() == "")
{
return drPerson["LastName"].ToString();
}
else
{
return drPerson["PartnerName"].ToString();
}
}
}
Thanks for your efforts to help me!
Rob