我是C#/asp.net开发人员,必须在VB/asp.net上工作。
我从VB.NET开始,但是在离开VB.NET多年之后,我对语法感到困惑。
我有两个变量
Dim originalDate as DateTime?
Dim newDate as DateTime?
这两个可为null的日期时间,originalDate都是我从数据库中获取的可为null的日期,并且newDate时间是在代码中设置的,我需要对其进行比较,它们既可以有日期,也可以没有日期,或者既可以有日期,也可以没有日期。
我有一些代码如下:
if origEndDate = origEndDate then
当origEndDate和origEndDate都为“nothing”时,此语句为假(嗯,当我在监视窗口中运行该语句时,它什么也没有返回)!
我不明白为什么会这样,因为在印象中我做一个“=”会比较两个值,并且由于它们相同,所以它肯定是正确的吗?
有人可以解释我做错了吗?我应该像在C#中一样使用什么语法,我可以像上面那样做:
if (origEndDate == origEndDate) { }
它将恢复为真实。
使困惑!
谢谢你的帮助!
最佳答案
尝试originalDate.Equals(newDate)
吗?
(不,当两个日期中的任何一个为null时,这都不会导致NRE,因为这些变量实际上是Nullable(Of DateTime)
值类型,因此,在将它们装箱之前,它们实际上不是null。)