【发布时间】:2014-06-13 13:19:29
【问题描述】:
我尝试创建一个函数来比较原始值和更新值,并将原始值设置为更新值(如果不同)。该功能做得更多,所以我简化以专注于主题:
public void Match<T>(Expression<Func<object>> original, Expression<Func<object>> updated)
{
var mex = original.Body as MemberExpression;
var funcOriginal = original.Compile();
var funcUpdated = updated.Compile();
var valueOriginal = funcOriginal();
var valueUpdated = funcUpdated();
if (valueOriginal != valueUpdated)
{
var info = mex.Member as PropertyInfo;
var target = ???; //How to get the original.TestProperty here?
info.SetValue(target, valueUpdated);
}
}
我想这样打电话:
manager.Match<TestClass>(() => original.TestProperty, () => updated.TestProperty);
【问题讨论】:
标签: c# lambda expression func