所以我基本上要做的是在C#中創建一個動態菜單框架。我基本上有一個菜單元素(這裏只是一個帶有一些文本的矩形),它包含一個DoAction()方法。只要矩形被點擊,該方法就會運行。我想要的是可以在運行時定義DoAction方法。例如,我可以實例化一個菜單元素,其DoAction()方法執行函數x(),然後實例化DoAction()方法執行y()函數的另一個菜單元素。我擁有的就是這樣的東西。用動態方法創建類
public class MenuElement {
public void DoAction(); // method I want to be dynamic
public MenuElement((text, height, width, etc), method myMethod){
DoAction = myMethod;
}
}
MenuElement m1 = new MenuElement(..., function x());
MenuElement m2 = new MenuElement(..., function y());
m1.DoAction(); // calls x()
m2.DoAction(); // calls y()
這是什麼樣的,我知道如何在Javascript中做的事情,但我不熟悉C#,我懷疑.NET可以讓我通過幾個跳火圈比JS會。從我正在閱讀的內容中,我將不得不使用代表?我無法找到任何可以輕鬆實現的教程。
太棒了,這正是我一直在尋找的!我每次都必須使用lambda表達式嗎?或者我能否通過現有的方法?說,像新的行動(myAlreadyExistingMethod()); –
經過快速測試:是的,你可以。對於任何人想知道它像新的Action(myAlreadyExistingMethod)一樣簡單; //方法名稱後沒有括號 –
感謝您接受的答案。我希望我能幫到:) –