具有价值和价值

克雷格

我在进行的代码审查中注意到了一些内容,并且想知道它是否合适。

a.EndDate.HasValue && a.EndDate > paymentPeriodEndDate

那不应该是:

a.EndDate.HasValue && a.EndDate.Value > paymentPeriodEndDate

请注意,a.EndDate为DateTime?,而paymentPeriodEndDate为DateTime

应该使用.Value吗?还是可以忽略它。编译器允许它,并且代码可以工作。然后,我只是想知道为什么会有.Value可用。

斯坦利

nullable可隐式地转换为其基础类型,因此

a.EndDate > paymentPeriodEndDate

隐式转换为

((DateTime)a.EndDate) > paymentPeriodEndDate

.Value是演员阵容的一部分。
由于您已经完成了空检查,因此没有实际区别。

然后,我只是想知道为什么会有.Value可用。

如果Value编译器无法隐式知道预期的输出是什么(例如,当传递给泛型方法或带有重载的方法时),将使用此方法。由于您正在与另一个进行比较,DateTime因此编译器可以推断您的意图并.Value为您服务。


* Techncially我觉得编译器在投加,因为自投运营商Nullable<T>Texplicit,但原则应该是相同的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有价值的InnerHTML

来自分类Dev

去吧,了解具有价值的背景

来自分类Dev

具有价值的 Django manytomany

来自分类Dev

XQuery:产生具有attr的元素也具有价值?

来自分类Dev

具有有价值边缘的树数据结构

来自分类Dev

对象具有价值,但似乎不存在?

来自分类Dev

放置一些具有价值关键的空间

来自分类Dev

在字段具有价值之前拒绝使用方法

来自分类Dev

如何查找仅具有价值的MongoDB文档?

来自分类Dev

如何使具有价值的枚举作为对象?

来自分类Dev

通过循环创建具有价值的深层对象

来自分类Dev

这个Javascript变数如何具有价值?

来自分类Dev

具有价值的中间件重定向

来自分类Dev

MVC显示模型属性仅具有价值吗?

来自分类Dev

使用具有价值的会话或Cookies

来自分类Dev

PHP没有价值

来自分类Dev

获取所有价值

来自分类Dev

AngularJS没有价值

来自分类Dev

AngularJS没有价值

来自分类Dev

单选按钮组在Chrome中具有价值,但在Firefox中不具有价值

来自分类Dev

$ rootscope没有持有价值

来自分类Dev

Oracle将价值插入现有价值的中间

来自分类Dev

如何添加没有价值的属性

来自分类Dev

Xpath /获得最有价值的祖先

来自分类Dev

JsonArray的任务没有价值-Android

来自分类Dev

elasticsearch排除有价值的结果

来自分类Dev

私人班级没有价值

来自分类Dev

jQuery val(); 没有价值

来自分类Dev

朱莉娅没有价值