2012-02-20 13 views
-1

我想要動態選擇法
我已經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"));   

現在我要動態調用的方法根據列表中添加的參數。 謝謝。

+0

你將如何決定調用哪個方法? – mshsayem 2012-02-20 05:16:53

+1

你的問題不太清楚 - 你能解釋一下你想要完成的更多嗎?你在談論哪些方法? – reuben 2012-02-20 05:18:42

+0

請描述更多詳細信息。不知道你想做什麼。一般使用反射你可以動態選擇要執行的方法。 – Sean 2012-02-20 05:20:25

回答

1

最終,您只需查看您的列表和每個項目,並且有一些標準來決定調用哪種方法。一旦你決定,你可以調用方法,這樣

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}); 
-1

你應該更好地瞭解OOP的一些文章,並嘗試建立一個更友好的架構˚F您的應用程序。那麼你所有的問題都會變得更容易理解 - 而且與目前的不同。

+0

嘗試首先了解問題 – 2012-02-20 07:53:20

+0

您應該爲您的問題添加更多詳細信息,否則您似乎希望基於它的狀態爲您的課程提供不同的行爲 - 這與您當前的設計一定是壞的體系結構。 – 2012-02-20 07:55:32