我有两个问题:
-
Date
和DateTime
在VB中是相同还是不同 -
DateTime
可以在VB中赋值为Nothing,而在c#中不能赋值为null。作为一个结构,它不能为空。那么为什么在VB中允许呢?
VB。净——
Module Module1
Sub Main()
Dim d As Date = Nothing
Dim dt As DateTime = Nothing
d = CType(MyDate, DateTime)
End Sub
Public ReadOnly Property MyDate As DateTime
Get
Return Nothing
End Get
End Property
End Module
, c#。净——
class Program
{
static void Main(string[] args)
{
DateTime dt = null;//compile time error
}
}
Nothing
在VB中。NET与c#中的null
不一样。它也有c#中default
的功能,当你在System.DateTime
这样的结构体上使用它时,就会发生这种情况。
所以Date
和DateTime
都指向同一个结构体System.DateTime
和
Dim dt As Date = Nothing
实际上和
是一样的Dim dt = Date.MinValue
或(c#中)
DateTime dt = default(DateTime);
在c#中可以使用default
关键字
DateTime dt = default(DateTime);
Date
和DateTime
在VB.NET中是相同的。Date
只是DateTime
的别名
在vb.net中Date
只是DateTime
的别名。
VB中存在的一些别名是为了帮助从vb6应用程序转换而存在的。