首页 / C# / c#-此属性设置器中的条件有效吗?
c#-此属性设置器中的条件有效吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-此属性设置器中的条件有效吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1299字,纯文字阅读大概需要2分钟。
内容图文
![c#-此属性设置器中的条件有效吗?](/upload/InfoBanner/zyjiaocheng/667/3aa75c34347946de9ed1d7754cb7af3e.jpg)
我正在重构我们的多个项目以供我们的一个客户重用,并且我希望能够明智地检查一个重写属性设置器的决定.
我已经在我们的代码库中见过几次这种实现,但是由于它是由不再在这里工作的开发人员编写的,所以我不能问他这个问题.
内容如下:
private double _myProperty;
public double MyProperty
{
get { return _myProperty; }
set
{
if (!(Math.Abs(_myProperty - value) < double.Epsilon))
{
_myProperty = value;
OnPropertyChanged();
}
}
}
我对为属性设置器编写以下语法非常熟悉:
if (value != _myProperty)
但是在上面的第一个示例中,我一直想知道是否丢失了某些东西.我知道Math.Abs??计算可以给我“值”和“ _myProperty”当前值之间的差,但是为什么要与double.Epsilon进行比较?根据IntelliSense和MSDN,double.Epsilon“代表大于零的最小正整数值”.因此,可以肯定的是,比较也很容易:
if (Math.Abs(_myProperty - value) > 0)
以前的开发人员是否只是不必要的复杂,还是我缺少尚未涵盖的C#的细微差别?
解决方法:
他们的意思是使用double.Epsilon以外的其他Epsilon值.如您所述,double.Epsilon是double可以表示的最小值,并且两个不同的double都不能比double.Epsilon更近,因此,它们的代码在功能上等同于仅检查差是否等于零,其功能与只对两个double进行常规的相等性检查相同.
逻辑的基本思想是使数字彼此“足够接近”以使其相等,其中“足够接近”是基于您所处理数字的有效数字的值.他们要么打算使用SomeBusinessObject.Epsilon来表示您正在使用的值的精度,要么他们只是在编写货物崇拜代码,而不了解他们在做什么.
内容总结
以上是互联网集市为您收集整理的c#-此属性设置器中的条件有效吗?全部内容,希望文章能够帮你解决c#-此属性设置器中的条件有效吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。