是的,它就像获取属性名称一样,但您必须在定义事件的类中执行此操作.
public class Foo
{
public event EventHandler Bar;
public string BarName
{
get
{
return this.GetEventName(() => this.Bar);
}
}
private string GetEventName(Expression<Func<EventHandler>> expression)
{
return (expression.Body as MemberExpression).Member.Name;
}
}
Run Code Online (Sandbox Code Playgroud)
请享用.
不可以。C# lambda 不支持事件,因此无法表示这一点。你必须使用反射。