为了账号安全,请及时绑定邮箱和手机立即绑定

您好,以下内容是关于C# <T>(Expression<Func<T>>,求解释~

您好,以下内容是关于C# <T>(Expression<Func<T>>,求解释~

C# C
ibeautiful 2021-11-24 15:11:40
private string balance;public string Balance{get { return balance; }set{if (balance != value){balance = value;RaisePropertyChangedEvent(() => Balance); //这一句}}}//以下的代码public event PropertyChangedEventHandler PropertyChanged = (sender, e) => { };private void RaisePropertyChangedEvent<T>(Expression<Func<T>> propertyExpression){PropertyChanged(this, new PropertyChangedEventArgs(GetPropertyName(propertyExpression)));}private string GetPropertyName<T>(Expression<Func<T>> propertyExpression){var expression = propertyExpression.Body as System.Linq.Expressions.MemberExpression;return expression.Member.Name;}最上面的是属性,下面这一大段是什么?起什么作用?
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

1.GetPropertyName 这方法是通过Lambda表达式获取属性名。
2.RaisePropertyChangedEvent 这个是触发PropertyChangedEventHandler事件并将对象的属性名做参数传入。

查看完整回答
反对 回复 2021-11-28
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

抛开问题内容,对于 Expression<Func<TEntity, object>>应传一个参数为TEntity 返回值为object的表达式,直接返回需要的对象即可。

对于问题内容中的方法,可以这样调用


 //假如我有个用户实体类 public class UserInfoEntity    {        public string Id { getset; }         public string UserName{ getset; }     }           //调用     static void Main(string[] args)    {        List<UserInfoEntity> lst_u = Search((u) => u.UserName);    }


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 281 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信