哪个是更有效的封装

时间:2015-08-06 19:57:18

标签: c# wpf mvvm

我最近一直在深入研究WPF和MVVM,并且我已经看到很多使用封装方法的例子,例如:

.substring(0,2)

因此,在将值设置为支持标准集之前进行快速比较并忘记:

private string _firstName;
public string FirstName
{
    get {return _firstName;}
    set
    {
        if (value != _firstName;)
        {
            _firstName = value;
        }
    }
 }

此方法实际上是否总是更高效或仅在使用MVVM时?

2 个答案:

答案 0 :(得分:2)

在WPF中执行MVVM时,还有一个额外的步骤(您省略了),即在您的setter中引发PropertyChanged

事件调用可能非常昂贵,因此检查值是否实际更改是值得的。在"正常"代码,分配的费用很小,因此结果将更接近"没有有效差异"。

如果没有运行我自己的基准测试,我会怀疑你提供的两个样本中的差异可以忽略不计。

答案 1 :(得分:0)

即使你重复了100万次任务,它们也几乎都是一样的。

然而,代码并不仅仅是关于性能或业务逻辑。

代码是关于诗歌的,因此可读性和可维护性是最好的艺术。

您会看到最好的代码是

public string FirstName
{
    get {return _firstName;}
    set {_firstName = value;}
}

大多数时候,最好的代码就是我提出的代码。

public string FirstName
{
    get;
    set;
}