لا شيء (Visual Basic)

تمثل قيمة افتراضية لأي نوع بيانات.

ملاحظات

تعيين Nothing إلى متغير يعينها إلى القيمة الافتراضية للنوع المُعرَف. إذا احتوى هذا النوع على أعضاء متغيرة , يتم تعيين الكل إلى قيمهم الافتراضية. يوضح المثال التالي ذلك بالنسبة لأنواع التدرُج.

Module Module1
    Public Structure testStruct
        Public name As String
        Public number As Short
    End Structure

    Sub Main()

        Dim ts As testStruct
        Dim i As Integer
        Dim b As Boolean

        ' The following statement sets ts.name to "" and ts.number to 0.
        ts = Nothing

        ' The following statements set i to 0 and b to False.
        i = Nothing
        b = Nothing

        Console.WriteLine("ts.name: " & ts.name)
        Console.WriteLine("ts.number: " & ts.number)
        Console.WriteLine("i: " & i)
        Console.WriteLine("b: " & b)

    End Sub

End Module

إذا كان المتغير من نوع المرجع, فإن قيمة ال Nothing تعني أن ذلك المتغير غير مقترن مع أي كائن. المتغير يمتلك قيمة null. يوضح المثال التالي هذا.

Module Module1

    Sub Main()

        Dim testObject As Object
        ' The following statement sets testObject so that it does not refer to
        ' any instance.
        testObject = Nothing

        Dim tc As New TestClass
        tc = Nothing
        ' The fields of tc cannot be accessed. The following statement causes 
        ' a NullReferenceException at run time. (Compare to the assignment of
        ' Nothing to structure ts in the previous example.)
        'Console.WriteLine(tc.field1)

    End Sub

    Class TestClass
        Public field1 As Integer
        ' . . .
    End Class
End Module

لاختبار المرجع و متغيرات نوع يقبل بيانات فارغة لمتغيرات ال Nothing, استخدم عامل Is أو عامل IsNot. و أوجه استخدام علامة التساوي , على سبيل المثال، someVar = Nothing، دوماً تقيَم إلى Nothing. يظهر المثال التالي المقارنات التي تستخدم عوامل التشغيل Is و IsNot.

Module Module1
    Sub Main()

        Dim testObject As Object
        testObject = Nothing
        ' The following statement displays "True".
        Console.WriteLine(testObject Is Nothing)

        Dim tc As New TestClass
        tc = Nothing
        ' The following statement displays "False".
        Console.WriteLine(tc IsNot Nothing)

        Dim n? As Integer
        ' The following statement displays "True".
        Console.WriteLine(n Is Nothing)
        n = 4
        ' The following statement displays "False".
        Console.WriteLine(n Is Nothing)
        n = Nothing
        ' The following statement displays "False".
        Console.WriteLine(n IsNot Nothing)

    End Sub

    Class TestClass
        Public field1 As Integer
        Dim field2 As Boolean
    End Class
End Module

لمزيد من المعلومات والأمثلة ، انظرأنواع قيمة يقبل القيم الخالية .

عند تعيين ال Nothing إلى متغير الكائن , فإنها لم تعد تشير إلى أي مثيل للكائن. إذا سبق أن احتوى المتغير على إشارة إلى المثيل فإن تعيينه إلى Nothing لا ينهي المثيل نفسه. تم إنهاء المثيل , و تم تحرير موارد الذاكرة و النظام المقترنة به , بعد أن كشفت حاوية المهملات (GC) عن عدم وجود مراجع نشطة متبقية.

راجع أيضًا:

المرجع

عبارة Vsual Basic) Dim)

عامل التشغيل Is في (Visual Basic)

عامل التشغيل IsNot

المبادئ

مدة بقاء الكائن: كيفية إنشاء و إتلاف الكائنات

العمر في Visual Basic

أنواع قيمة يقبل القيم الخالية