Обнуляемая дата-время в свойстве getset

#asp.net #vb.net

#asp.net #vb.net

Вопрос:

 Sub Main()
    Dim e As Example = New Example()
    ' Set property.
    If Date.TryParse("Null", e.Number) Then
        'get the valid date
        '10/12/2016'
    Else
        'get the value as nothing
        'Nothing
    End If
    ' Get property.
    Console.WriteLine(e.Number)
    Console.ReadKey()
End Sub

Class Example
    Private _count As Date

    Public Property Number() As Date
        Get
            Return _count
        End Get
        Set(ByVal value As Date)
            _count = value
        End Set
    End Property
End Class
 

Я хочу получить правильную дату, если дата действительна, если иначе мне нужно ничего не хранить или null внутри e.number
Примечание: — Я должен получить значение в e.number

Ответ №1:

Вам нужно объявить свое свойство как обнуляемое, что означает использование Nullable(Of Date) или сокращение Date? . Затем вы можете сделать это:

 If Date.TryParse(myString, myDate) Then
    myObject.MyNullableDateProperty = myDate
Else
    myObject.MyNullableDateProperty = Nothing
End If
 

Когда приходит время использовать тип значения с нулевым значением, вы должны сначала использовать его HasValue свойство, чтобы определить, есть ли значение для использования, а затем получить это значение из его Value свойства, например

 If myObject.MyNullableDateProperty.HasValue Then
    Console.WriteLine("The date is " amp; myObject.MyNullableDateProperty.Value.ToString())
Else
    Console.WriteLine("There is no date")
End If