Retrieving Event name from lambda expression

2019-06-16 15:27发布

问题:

is there way how to get name ov event from Lambda expression like with property ( Retrieving Property name from lambda expression ) ?

Thanks

回答1:

No. C# lambdas don't support events, so there is no way of representing this. You'll have to use reflection.



回答2:

Yes, it's just like getting the property name, but you must do it in the class that defines the event.

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

Enjoy.



标签: c# lambda