如何动态选择要执行的方法

本文关键字:执行 方法 选择 何动态 动态 | 更新日期: 2023-09-27 18:25:04

我想动态选择方法
我有一个20重载的方法,我想动态选择这些方法
假设我有通用List<MyClass> lst = new List<MyClass>();

class Myclass
{
    String Paraname  {Get; Set;}
    String KeyName {Get; Set;}
    String Border {Get; Set;}
    .... So on
}
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey"));
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey"));
lst.add(new Myclass(Paraname="SomePara", KeyName="SomeKey", Border="Left"));        

现在我想根据列表中添加的参数动态调用该方法。谢谢

如何动态选择要执行的方法

最终,您只需要查看列表和每个项目,并有一些标准来决定调用哪个方法。一旦您决定可以调用这种方法

Type myType = Type.GetType("MyClass");
        ConstructorInfo myConstructor = myType.GetConstructor(Type.EmptyTypes);
        object myClassObject = myConstructor.Invoke(new object[]{});

        MethodInfo myMethod = myType.GetMethod("Method Name");
        object myValue = myMethod.Invoke(myClassObject, new object[]{100});

您需要利用以下功能:

MethodInfo.Invoke(...)

以下是如何:http://msdn.microsoft.com/en-us/library/a89hcwhh.aspx

您应该更好地阅读一些关于OOP的文章,并尝试为您的应用程序构建一个更友好的架构。然后你们所有的问题都会变得更容易理解,并且与当前的不同。