我有一个具有 2 个相同类型(布尔)属性的视图模型。我喜欢有一个将属性之一设置为布尔值的函数。假设您有一个 IsReadonly 属性。
public void SetReadOnly(MyViewModel vm, bool newVal)
{
vm.IsReadOnly = newVal;
}
现在我想让它更通用,并且对两者都有一个功能:
public void SetBooleanProperty(MyViewModel vm, bool newVal, ?bool? myProperty)
{
vm.myProperty = newVal; // sure this is an error, myProperty doesn't exist in the viewmodel. But that shows the way i like to have.
}
我开始了这种方法:
public void SetBooleanproperty<TProp>(MyViewModel vm, bool newVal, TProp myProperty)
{
vm.??? = newVal;
}
我不喜欢使用 GetPropertyByName("IsReadonly") 函数,我认为它在.Net 的反射类中的某处可用。原因:如果另一个开发人员重构项目并重命名 IsReadonly,则字符串不会得到更新。有解决方案吗?