2017-05-29 69 views
0

我想要一個方法來檢測方法調用者和屬性。如何檢測方法的來電者及其屬性

例如,如果我在名爲'btn'的按鈕上調用該方法,它應該在消息框中爲我打印「btn」。

在網上搜索,但剛剛發現如何檢測方法是否被調用過!

在此先感謝您的幫助!

+1

如果您正在尋找不僅涵蓋事件的通用做法,但還有其他方法使用[來電信息](https://msdn.microsoft.com/en-us/library/ hh534540(v = vs.110).aspx)功能。 –

回答

4

您可以使用sender對象參數。事情是這樣的:

private void button1_Click(object sender, EventArgs e) 
{ 
    method1(sender); 
} 

public void method1(object sender) 
{ 
    var button = sender as Button; 
    if (button != null) 
    { 
     var caller = button.Name; 
     MessageBox.Show(caller);//It shows button1 
    } 
} 
+1

或者,如果你的編譯器版本足夠新,'if(sender is Button button)' –