c# - 在 Property Setter 中,仅在值不同时设置是否有益?

标签 c# properties performance

我想知道这段代码有什么好处:

    private int _TestID;
    public int TestID
    {
        get 
        { 
            return _TestID;
        }
        set
        {
            if(_TestID != value)
            {
                _TestID = value;
            }
        }
    }

对比这个:

    private int _TestID;
    public int TestID
    {
        get 
        { 
            return _TestID;
        }
        set
        {
            _TestID = value;
        }
    }

在我看来,这是以效率的名义完成的(只有在设置不同时才设置),但测试不会比初始设置花费更长(或更长)的时间吗?我不确定我是否遗漏了什么,但很想听到任何评论和解释。

最佳答案

当您将它与 WPF 或其他数据绑定(bind)解决方案中常见的 RaisePropertyChanged("TestID")(在 if 内,在设置字段值之后)事件模式结合使用时,它会很有用。

class Something : INotifyPropertyChanged
{
      public int TestID 
      {
           get { return testId; }
           set 
           {
                if (testId != value)
                {
                     testId = value;
                     RaisePropertyChangedEvent("TestID");
                }
           }
      }
 }

关于c# - 在 Property Setter 中,仅在值不同时设置是否有益?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1566865/

相关文章:

c# - C# 在图像中绘制一个点

iOS计算器实现困境: how and where to create the calculator stack

iphone - dictionaryWithContentsOfFile 从我的属性列表文件中返回 nil

php - 构建一个组件

c# - Linq 查询在本地机器上运行良好,但在服务器上出现 "The connection was reset"错误

c# - 托管 C++ 中的 List<Tuple<int, float>>

c# - 了解 Action 和UriQuery

c# - 空传播 - 第二次空检查

angular - 优化大型 Angular 表格网格

matlab - 如何从另一个程序访问 MATLAB(插值)样条曲线?