Aracılığıyla paylaş


Hiçbir şey (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 ile 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, Null 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.

Ayrıca bkz.

Başvuru

Dim deyimi (Visual Basic)

İs operatörü (Visual Basic)

IsNot işleci (Visual Basic)

Kavramlar

Nesne yaşam süresi: Nesneleri nasıl oluşturulur ve yok (Visual Basic)

Visual Basic'te yaşam süresi

Null değer türleri (Visual Basic)