我最近一直在深入研究WPF和MVVM,并且我已经看到很多使用封装方法的例子,例如:
.substring(0,2)
因此,在将值设置为支持标准集之前进行快速比较并忘记:
private string _firstName;
public string FirstName
{
get {return _firstName;}
set
{
if (value != _firstName;)
{
_firstName = value;
}
}
}
此方法实际上是否总是更高效或仅在使用MVVM时?
答案 0 :(得分:2)
在WPF中执行MVVM时,还有一个额外的步骤(您省略了),即在您的setter中引发PropertyChanged
。
事件调用可能非常昂贵,因此检查值是否实际更改是值得的。在"正常"代码,分配的费用很小,因此结果将更接近"没有有效差异"。
如果没有运行我自己的基准测试,我会怀疑你提供的两个样本中的差异可以忽略不计。
答案 1 :(得分:0)
即使你重复了100万次任务,它们也几乎都是一样的。
然而,代码并不仅仅是关于性能或业务逻辑。
代码是关于诗歌的,因此可读性和可维护性是最好的艺术。
您会看到最好的代码是
public string FirstName
{
get {return _firstName;}
set {_firstName = value;}
}
大多数时候,最好的代码就是我提出的代码。
public string FirstName
{
get;
set;
}