Nothing (Visual Basic)
Herhangi bir veri türünün varsayılan değerini temsil eder.Başvuru tipleri için varsayılan değer olan null başvuru.Değer türleri için varsayılan değeri değer türü null olmasına bağlıdır.
[!NOT]
Null olmayan değer türleri için Nothing Visual Basic'te farklıdır null C#.Visual Basic'te, null olmayan değer türü için değişken ayarlarsanız, Nothing, değişken, bildirilen türü için varsayılan değere ayarlanır.c bir değişken için null olmayan bir değer türü atarsanız # null, bir derleme zamanı hatası oluşur.
Notlar
Nothingveri türü varsayılan değerini temsil eder.Varsayılan değer, değişken bir değer türünün veya başvuru türü olmasına bağlıdır.
Bir değişken bir değer türü doğrudan değerini içerir.Değer türleri dahil tüm sayısal veri türleri, Boolean, Char, Date, tüm yapıları ve tüm numaralandırma.Bir değişken bir Başvuru türü bellekte bir başvuru nesnesinin bir kopyasýný saklar.Başvuru tipleri sınıflar, diziler, Temsilciler ve dizeler içerir.Daha fazla bilgi için bkz. Değer Türleri ve Başvuru Türleri.
Bir değişken değeri ise yazın, davranışını Nothing değişkeni null veri türü olup olmamasına bağlıdır.Bir null değer türünü temsil eden eklemek bir ? değiştiricisi türü adı.Atama Nothing null olabilecek bir değişken değerini ayarlar null.Daha fazla bilgi ve örnekler için bkz, Boş Değer Atanabilen Değer Türleri (Visual Basic).
Bir değişken null olmayan bir değer türü ise atama Nothing için varsayılan değer olarak, bildirilen türü için ayarlar.Bu tür değişken üyeler içeriyorsa, tüm varsayılan değerleri kümesine kullanılırlar.Aşağıdaki örnekte bu skalar türleri gösterilmektedir.
Module Module1
Sub Main()
Dim ts As TestStruct
Dim i As Integer
Dim b As Boolean
' The following statement sets ts.Name to Nothing 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)
Console.ReadKey()
End Sub
Public Structure TestStruct
Public Name As String
Public Number As Integer
End Structure
End Module
Bir başvuru türü bir değişken ise atama Nothing değişkenine ayarlar bir null değişkenin türüne başvuru.Ayarlamak için bir değişken bir null başvuru herhangi bir nesneyle ilişkili değildir.Aşağıdaki örnekte bu gösterilir.
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
Bir başvuru (veya türü null değeri olup olmadığını) değişken denetlerken null, kullanmak istemediğiniz = Nothing veya <> Nothing.Always use Is Nothing or IsNot Nothing.
Visual Basic'te dizeleri için boş bir dize eşittir Nothing.Bu nedenle, "" = Nothing doğrudur.
Aşağıdaki örnek kullanmak karşılaştırmaları gösterir Is ve IsNot operators.
Module Module1
Sub Main()
Dim testObject As Object
testObject = Nothing
Console.WriteLine(testObject Is Nothing)
' Output: True
Dim tc As New TestClass
tc = Nothing
Console.WriteLine(tc IsNot Nothing)
' Output: False
' Declare a nullable value type.
Dim n? As Integer
Console.WriteLine(n Is Nothing)
' Output: True
n = 4
Console.WriteLine(n Is Nothing)
' Output: False
n = Nothing
Console.WriteLine(n IsNot Nothing)
' Output: False
Console.ReadKey()
End Sub
Class TestClass
Public Field1 As Integer
Private field2 As Boolean
End Class
End Module
Bir değişkeni bildirirseniz kullanmadan bir As yan tümcesi ve ayarlamak Nothing, değişken türü yok Object.Bunun bir örneği Dim something = Nothing.Bu durumda bir derleme zamanı hatası oluştuğunda, Option Strict açıktır ve Option Infer kapalıdır.
Atadığınız ne zaman Nothing bir nesne değişkenine de bunu herhangi bir nesne örneğine artık başvurur.Değişken bir örneğe daha önce başvurulan, ayarlama Nothing örnek işten değil.Örnek sona erer ve yalnızca Çöp toplayıcı (gc) kalan etkin başvuru olduğunu algıladıktan sonra kendisiyle ilişkilendirilmiş bellek ve sistem kaynakları, serbest bırakılır.
Nothingfarklı DBNull başlatılmamış bir variant veya varolmayan bir veritabanı sütunu temsil eden nesne.