Microsoft.VisualBasic.Now vs System.DateTime.Now

chr*_*ris 5 vb.net datetime

使用Microsoft.VisualBasic.DateAndTime.Now与System.DateTime.Now之间有什么区别吗?

我似乎记得读过一些说MS.VB命名空间仅用于遗留用途的东西,并且比使用原生.net类慢得多.

GvS*_*GvS 10

在某些情况下,使用VB命名空间可能会更慢(因为增加了功能和/或灵活性,而不是因为MS希望VB更慢).

但是在DateAndTime.Now的情况下,情况并非如此.这只是对DateTime.Now调用的包装.

我怀疑调用是由JIT编译器内联的,所以它不会使你的代码变慢(当编译为Release时).

证明:这是来自DateAndTime.Now的IL:

.method public specialname static valuetype [mscorlib]System.DateTime get_Now() cil managed
{
    .maxstack 1
    .locals init (
        [0] valuetype [mscorlib]System.DateTime time)
    L_0000: call valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now()
    L_0005: ret 
}
Run Code Online (Sandbox Code Playgroud)

这完全相同:

Return DateTime.Now
Run Code Online (Sandbox Code Playgroud)