我有一个看起来类似于的函数Caliburn.Micro
:
// using Caliburn.Micro;
public void ChangeProperty<T>(Expression<Func<T>> property, ref T propertyRef, T newValue)
{
string propertyName = property.GetMemberInfo().Name;
T oldValue = propertyRef;
propertyRef = newValue;
PropertyChangeEx(this, propertyName, oldValue, newValue); // change event
}
我像这样使用它:
public Property
{
get { return property; }
set { ChangeProperty(() => Property, ref property, value); }
}
它工作正常 - 我不需要将属性名称作为字符串传递,因此我可以自由更改属性的名称。
但如果我能改变我的电话,那就太好了:
ChangeProperty(() => Property, ref property, value);
类似于:
ChangeProperty(Property => property = value);
或任何看起来更好的东西。
有人有想法吗?