C# <T>(Expression<Func<T>>

privatestringbalance;publicstringBalance{get{returnbalance;}set{if(balance!=value){ba... 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;
}

最上面的是属性,下面这一大段是什么?起什么作用?
展开
 我来答
水流鱼
2013-05-09
知道答主
回答量:13
采纳率:0%
帮助的人:7万
展开全部
1.GetPropertyName 这方法是通过Lambda表达式获取属性名。
2.RaisePropertyChangedEvent 这个是触发PropertyChangedEventHandler事件并将对象的属性名做参数传入。
追问
这两个方法的特定格式是什么,能不能结合上面的属性写一写?比如那些是关键字,那些是自己命名的。因为我需要记住它们。谢谢了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式