esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Bármely adattípus alapértelmezett értékét jelöli. Referenciatípusok esetén az alapértelmezett érték a null
hivatkozás. Értéktípusok esetén az alapértelmezett érték attól függ, hogy az értéktípus null értékű-e.
Megjegyzés
Nem null értékű értéktípusok Nothing
esetén a Visual Basicben eltér a C#-tól null
. A Visual Basicben, ha nem null értékű Nothing
változót állít be, a változó a deklarált típus alapértelmezett értékére van állítva. C#-ban, ha nem null értékű null
változót rendel hozzá, fordítási időhiba lép fel.
Nothing
egy adattípus alapértelmezett értékét jelöli. Az alapértelmezett érték attól függ, hogy a változó értéktípusú vagy hivatkozástípusú-e.
Egy értéktípusú változó közvetlenül tartalmazza az értékét. Az értéktípusok közé tartozik az összes numerikus adattípus, Boolean
a , Char
, Date
az összes struktúra és az összes számbavétel. Egy referenciatípus változója az objektum egy példányára mutató hivatkozást tárol a memóriában. A referenciatípusok közé tartoznak az osztályok, tömbök, meghatalmazottak és sztringek. További információ: Értéktípusok és referenciatípusok.
Ha egy változó érték típusú, a változó viselkedése Nothing
attól függ, hogy a változó null értékű adattípus-e. Ha null értékű típust szeretne jelölni, adjon hozzá egy ?
módosítót a típusnévhez. A null értékű változóhoz való Nothing
hozzárendelés a következő értékre null
állítja az értéket: . További információkért és példákért lásd : Null értékű típusok.
Ha egy változó olyan értéktípusú, amely nem null értékű, a hozzá rendelés Nothing
a deklarált típus alapértelmezett értékére állítja. Ha ez a típus változótagokat tartalmaz, mindegyik az alapértelmezett értékre van állítva. Az alábbi példa a skaláris típusok esetében szemlélteti ezt.
Module Module1
Sub Main()
Dim ts As TestStruct
Dim i As Integer
Dim b As Boolean
' The following statement sets ts.Name to null 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
Ha egy változó referenciatípusú, a változóhoz való hozzárendelés Nothing
a változó típusának hivatkozására null
állítja. Egy hivatkozásra null
beállított változó nincs objektumhoz társítva. Az alábbi példa a következőket mutatja be:
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
Annak ellenőrzéséhez, hogy egy hivatkozási (vagy null értékű) változó mindig null
használható-e Is Nothing
vagy IsNot Nothing
. Ne használja = Nothing
vagy <> Nothing
.
A Visual Basicben lévő sztringek esetében az üres sztring egyenlő Nothing
. "" = Nothing
Ezért igaz. Ez a tény különösen fontos, hogy a sztringek használatakor a megfelelő összehasonlítást válassza. Bár myString = Nothing
, és myString <> Nothing
jelzi, hogy be van-e állítva egy nem üres érték, határozottan javasoljuk, hogy erre a célra használja String.IsNullOrEmpty(myString)
. Használja Is Nothing
és IsNot Nothing
határozza meg, hogy egy üres sztringet is tartalmazó érték be van-e állítva.
Az alábbi példa azokat az összehasonlításokat mutatja be, amelyek az operátorokat és IsNot
az Is
operátorokat használják:
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
Ha záradék használata As
nélkül deklarál egy változót, és azt állítja Object
beNothing
, a változó típusa . Erre példa a .Dim something = Nothing
Ebben az esetben fordítási időhiba lép fel, ha Option Strict
be van kapcsolva és Option Infer
ki van kapcsolva.
Amikor Nothing
hozzárendel egy objektumváltozót, az már nem hivatkozik objektumpéldányra. Ha a változó korábban egy példányra hivatkozott, a beállítás Nothing
nem állítja le magát a példányt. A példány leáll, és a hozzá tartozó memória- és rendszererőforrások felszabadulnak, csak azután, hogy a szemétgyűjtő (GC) észleli, hogy nincsenek aktív hivatkozások.
Nothing
különbözik az DBNull objektumtól, amely nem inicializált változatot vagy nem létező adatbázisoszlopot jelöl.
.NET-visszajelzés
A(z) .NET egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
esemény
Intelligens alkalmazások létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
Regisztráció