لا شيء (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) عن عدم وجود مراجع نشطة متبقية.
راجع أيضًا:
المرجع
عامل التشغيل Is في (Visual Basic)