2016-08-30 13 views
0

にイベントをバインドすることは、一般的な機能にイベントをバインドすることが可能にされているような一般的な機能

static void CommonEventHandler(object sender, params object[] values) 
{ 
    //stuff 
} 
この背後にある私の推論がある

が、私は(NLuaが結合して)のLuaからいくつかのイベントを使用したいですこれは、C#側からの関数呼び出しでobject[]を受け取ります。 params関数などにイベントをバインドできれば、イベントとのLuaの統合が容易になります。

+2

lambdaを使うことができます: 'SomeEvent + =(sender、args)=> CommonEventHandler(sender、doSomethingWithArgs);' – Sinatr

答えて

1

ラムダはそれを許可します。

あなたはこのようなものだろう:

public class MyControl 
{ 
    public MyControl() 
    { 
     InitializeComponent(); 

     int myArgs = 123; 
     MyButton.Click += (sender, e) => MyCustomMethod(sender, e, myArgs); 

    } 
    public void MyCustomMethod(object sender, EventArgs e, int myArgs) 
    { 

     // this prints "123" when the button is pressed 
     MessageBox.Show(myArgs.ToString()); 
    } 
} 

ちょうどあなたが使用したい引数の型と値をint myArgsを交換します。

関連する問題