7

2つの質問があります:

  1. DateおよびDateTime:VBではそれらは異なるか同じですか?

  2. DateTimeVBではNothingを割り当てることができますが、C#ではnullを割り当てることはできません。構造体であるため、nullにすることはできません。では、なぜVBで許可されているのでしょうか。

--- VB.NET -----

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#.NET -----

class Program
    {
        static void Main(string[] args)
        {
            DateTime dt = null;//compile time error            
        }
    }
4

3 に答える 3

14

NothingnullVB.NETの場合はC#の場合と同じではありません。またdefault、C#の機能もあり、のような構造で使用するとそれが起こりますSystem.DateTime

したがって、両方、DateおよびDateTime同じ構造体を参照しSystem.DateTime

Dim dt As Date = Nothing 

実際にはと同じです

Dim dt = Date.MinValue

または(C#の場合)

DateTime dt = default(DateTime);
于 2013-01-11T15:38:29.160 に答える
3

defaultC#ではキーワードを使用できます

DateTime dt = default(DateTime);

DateDateTimeVB.NETで同じです。Dateの単なるエイリアスですDateTime

于 2013-01-11T15:38:38.157 に答える
3

vb.netではDate、は単にのエイリアスですDateTime

VBに存在するエイリアスのいくつかは、vb6アプリケーションからの変換を支援するためのレガシー目的のためにあります。

于 2013-01-11T15:40:01.090 に答える