سؤال

لدي nullable الملكية و أريد العودة إلى قيمة فارغة.كيف أفعل ذلك في VB.NET ?

حاليا أنا استخدم هذا الحل, ولكن أعتقد أنه قد يكون هناك طريقة أفضل.

    Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
        Get
            If Current.Request.QueryString("rid") <> "" Then
                Return CInt(Current.Request.QueryString("rid"))
            Else
                Return (New Nullable(Of Integer)).Value
            End If
        End Get
    End Property
هل كانت مفيدة؟

المحلول

هل تبحث عن كلمة "لا شيء" ؟

نصائح أخرى

نعم لا شيء في VB.NET أو null في C#.

على Nullable عامة نوع البيانات تعطي مترجم إمكانية تعيين "لا شيء" (أو فارغة" القيمة القيمة نوع.دون explicitally الكتابة, لا يمكنك أن تفعل ذلك.

أنواع Nullable في C#

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
    Get
        If Current.Request.QueryString("rid") <> "" Then
            Return CInt(Current.Request.QueryString("rid"))
        Else
            Return Nothing
        End If
    End Get
End Property

أو هذه هي الطريقة التي يمكنني استخدام, أن نكون صادقين ReSharper علمني :)

finder.Advisor = ucEstateFinder.Advisor == "-1" ? (long?)null : long.Parse(ucEstateFinder.Advisor);

على تعيين أعلاه إذا كنت مباشرة تعيين null إلى الباحث.مستشار*(طويلة؟)* لن يكون هناك أي مشكلة.ولكن إذا حاولت استخدام شرط إذا أريد أن يلقي مثل هذا (long?)null.

على الرغم من أن Nothing يمكن استخدامها ، "القائمة" رمز تقريبا الصحيح ؛ فقط لا تحاول الحصول على .Value:

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
    Get
        If Current.Request.QueryString("rid") <> "" Then
            Return CInt(Current.Request.QueryString("rid"))
        Else
            Return New Nullable(Of Integer)
        End If
    End Get
End Property

هذا ثم يصبح أبسط حل إذا كنت تريد للحد من ذلك If التعبير:

Public Shared ReadOnly Property rubrique_id() As Nullable(Of Integer)
    Get
        Return If(Current.Request.QueryString("rid") <> "", _
            CInt(Current.Request.QueryString("rid")), _
            New Nullable(Of Integer))
    End Get
End Property
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top