Utasítások a Visual Basicben
A Visual Basic utasítása teljes utasítás. Kulcsszavakat, operátorokat, változókat, állandókat és kifejezéseket tartalmazhat. Minden utasítás a következő kategóriák egyikéhez tartozik:
Deklarációs utasítások, amelyek változót, állandót vagy eljárást neveznek el, és adattípust is megadhatnak.
Végrehajtható utasítások, amelyek műveleteket kezdeményeznek. Ezek az utasítások meghívhatnak egy metódust vagy függvényt, és kódblokkokon keresztül hurkolhatnak vagy elágazhatnak. A végrehajtható utasítások közé tartoznak a hozzárendelési utasítások, amelyek egy értéket vagy kifejezést rendelnek hozzá egy változóhoz vagy állandóhoz.
Ez a témakör az egyes kategóriákat ismerteti. Ez a témakör azt is ismerteti, hogyan kombinálhat több utasítást egy sorban, és hogyan folytathatja az utasítást több sorban.
Deklarációs utasítások
Deklarációs utasítások használatával nevezheti el és határozhatja meg az eljárásokat, a változókat, a tulajdonságokat, a tömböket és az állandókat. Programozási elem deklarálásakor megadhatja annak adattípusát, hozzáférési szintjét és hatókörét is. További információ: Deklarált elemjellemzők.
Az alábbi példa három deklarációt tartalmaz.
Public Sub ApplyFormat()
Const limit As Integer = 33
Dim thisWidget As New widget
' Insert code to implement the procedure.
End Sub
Az első deklaráció a Sub
nyilatkozat. A megfelelő End Sub
utasítással együtt deklarál egy eljárást applyFormat
. Azt is megadja, hogy applyFormat
ez az Public
, ami azt jelenti, hogy minden olyan kód, amely hivatkozhat rá, meghívhatja.
A második deklaráció a Const
konstanst limit
deklaráló utasítás, amely megadja az adattípust és a Integer
33-at.
A harmadik deklaráció az utasítás Dim
, amely deklarálja a változót thisWidget
. Az adattípus egy adott objektum, nevezetesen az osztályból Widget
létrehozott objektum. A változók bármilyen elemi adattípusúnak vagy bármilyen objektumtípusnak deklarálhatók, amelyek a használt alkalmazásban vannak közzétéve.
Kezdeti értékek
A deklarációs utasítást tartalmazó kód futtatásakor a Visual Basic lefoglalja a deklarált elemhez szükséges memóriát. Ha az elem tartalmaz egy értéket, a Visual Basic inicializálja azt az adattípus alapértelmezett értékére. További információ: "Viselkedés" a Dim Utasításban.
A kezdeti értéket a deklaráció részeként rendelheti hozzá egy változóhoz, ahogyan az az alábbi példában is látható.
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Ha egy változó objektumváltozó, explicit módon létrehozhat egy példányt annak osztályából, amikor az Új operátor kulcsszóval deklarálja azt, ahogyan az alábbi példa is mutatja.
Dim f As New FileInfo("filename")
Vegye figyelembe, hogy a deklarációs utasításban megadott kezdeti érték nem lesz hozzárendelve egy változóhoz, amíg a végrehajtás el nem éri a deklarációs utasítást. Addig a változó tartalmazza az adattípus alapértelmezett értékét.
Végrehajtható utasítások
Egy végrehajtható utasítás végrehajt egy műveletet. Meghívhat egy eljárást, elágaztathat a kód egy másik helyére, több utasításon keresztül hurkolhat, vagy kiértékelhet egy kifejezést. A hozzárendelési utasítás egy végrehajtható utasítás különleges esete.
Az alábbi példa egy If...Then...Else
vezérlőstruktúra használatával futtat különböző kódblokkokat egy változó értéke alapján. Minden kódblokkon belül egy For...Next
hurok meghatározott számú alkalommal fut.
Public Sub StartWidget(ByVal aWidget As widget,
ByVal clockwise As Boolean, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.SpinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.SpinCounterClockwise()
Next counter
End If
End Sub
Az If
előző példában szereplő utasítás ellenőrzi a paraméter clockwise
értékét. Ha az érték az True
, meghívja a spinClockwise
metódust aWidget
. Ha az érték az False
, meghívja a spinCounterClockwise
metódust aWidget
. A If...Then...Else
vezérlőstruktúra a következővel End If
végződik: .
Az For...Next
egyes blokkok hurokja a megfelelő metódust a paraméter értékével revolutions
egyenlő számú alkalommal hívja meg.
Hozzárendelési utasítások
A hozzárendelési utasítások hozzárendelési műveleteket végeznek, amelyek a hozzárendelési operátor (=
) jobb oldalán lévő érték felvételéből és a bal oldali elemben való tárolásából állnak, ahogyan az alábbi példában is látható.
v = 42
Az előző példában a hozzárendelési utasítás a 42 literális értéket tárolja a változóban v
.
Jogosult programozási elemek
A hozzárendelés-operátor bal oldalán lévő programozási elemnek képesnek kell lennie egy érték elfogadására és tárolására. Ez azt jelenti, hogy olyan változónak vagy tulajdonságnak kell lennie, amely nem ReadOnly, vagy tömbelemnek kell lennie. A hozzárendelési utasítás kontextusában az ilyen elemet néha lvalue-nek is nevezik a "bal oldali érték" kifejezéshez.
A hozzárendelési operátor jobb oldalán lévő értéket egy kifejezés hozza létre, amely konstansok, állandók, változók, tulajdonságok, tömbelemek, egyéb kifejezések vagy függvényhívások bármilyen kombinációjából állhat. Az alábbi példa ezt szemlélteti.
x = y + z + FindResult(3)
Az előző példa hozzáadja a változóban y
tárolt értéket a változóban z
tárolt értékhez, majd hozzáadja a függvény findResult
hívása által visszaadott értéket. A kifejezés teljes értéke ezután változóban x
lesz tárolva.
Adattípusok a hozzárendelési utasításokban
A numerikus értékek mellett a hozzárendelési operátor is hozzárendelhet String
értékeket, ahogy azt az alábbi példa is szemlélteti.
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
Az értékeket literál vagy Boolean
kifejezés használatával Boolean
is hozzárendelhetiBoolean
, ahogy az alábbi példa is szemlélteti.
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
Hasonlóképpen a megfelelő értékeket is hozzárendelheti a Char
, Date
vagy Object
adattípus programozási elemeihez. Objektumpéldányt is hozzárendelhet ahhoz az osztályhoz, amelyből a példány létrejön.
Összetett hozzárendelési utasítások
Az összetett hozzárendelési utasítások először műveletet hajtanak végre egy kifejezésen, mielőtt egy programozási elemhez rendelik. Az alábbi példa az egyik operátort szemlélteti, +=
amely az operátor bal oldalán lévő változó értékét a jobb oldali kifejezés értékével növeli.
n += 1
Az előző példa 1-et ad hozzá az értékhezn
, majd tárolja az új értéket.n
Ez a következő utasítás rövidített megfelelője:
n = n + 1
Különböző összetett hozzárendelési műveletek végezhetők ilyen típusú operátorokkal. Ezeknek az operátoroknak a listájáért és további információkért tekintse meg a Hozzárendelési operátorok című témakört.
Az összefűzés-hozzárendelés operátor (&=
) akkor hasznos, ha sztringet ad hozzá a már meglévő sztringek végéhez, ahogy az alábbi példa is mutatja.
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Típuskonverziók a hozzárendelési utasításokban
A változóhoz, tulajdonsághoz vagy tömbelemhez hozzárendelt értéknek az adott célelemnek megfelelő adattípusnak kell lennie. Általában a célelem értékével megegyező adattípusú értéket kell létrehoznia. Egyes típusok azonban más típussá alakíthatók a hozzárendelés során.
Az adattípusok közötti konvertálásról további információt a Visual Basic típuskonverziói című témakörben talál. Röviden: a Visual Basic automatikusan konvertál egy adott típusú értéket bármely más típussá, amelyre kitér. A szélesítő átalakítás olyan, amely futásidőben mindig sikeres, és nem veszt el adatokat. A Visual Basic például adott esetben átalakít egy Integer
értéket Double
, mert Integer
az érték a következőre Double
szélesedik: . További információkért lásd a konverziók kibővítését és szűkítését ismertető témakört.
A szűkülő konverziók (amelyek nem szélesednek) futásidőben meghibásodás vagy adatvesztés kockázatát hordozzák magukban. A szűkítő konverziót explicit módon végezheti el egy típuskonvertálási függvény használatával, vagy a fordítót implicit módon is végrehajthatja a beállítással Option Strict Off
. További információ: Implicit és Explicit konverziók.
Több utasítás elhelyezése egy sorban
Egyetlen sorban több utasítást is megadhat a kettőspont (:
) karakterrel elválasztva. Az alábbi példa ezt szemlélteti.
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Bár időnként kényelmes, a szintaxis ezen formája megnehezíti a kód olvasását és karbantartását. Ezért javasoljuk, hogy egy utasítást egy sorba tartson.
Utasítás folytatása több sorban
Az utasítás általában egy sorra illeszkedik, de ha túl hosszú, akkor a következő sorra folytathatja egy sor-folytatás sorozattal, amely egy szóközből, majd egy aláhúzásjelből (_
) és egy kocsivisszajelből áll. Az alábbi példában a MsgBox
végrehajtható utasítás két sorban folytatódik.
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Implicit vonal folytatása
Sok esetben az aláhúzásjel (_
aláhúzásjel) használata nélkül is folytathatja az utasítást a következő egymást követő sorban. A következő szintaxiselemek implicit módon folytatják az utasítást a következő kódsoron.
Vessző (
,
) után. Példa:Public Function GetUsername(ByVal username As String, ByVal delimiter As Char, ByVal position As Integer) As String Return username.Split(delimiter)(position) End Function
Nyitott zárójel (
(
) vagy záró zárójel () előtt ()
). Példa:Dim username = GetUsername( Security.Principal.WindowsIdentity.GetCurrent().Name, CChar("\"), 1 )
Nyitott kapcsos kapcsos zárójel (
{
) vagy záró kapcsos zárójel () előtt.}
Példa:Dim customer = New Customer With { .Name = "Terry Adams", .Company = "Adventure Works", .Email = "terry@www.adventure-works.com" }
További információ: Object Initializers: Named and Anonymous Types or Collection Initializers.
Egy megnyitott beágyazott kifejezés (
<%=
) vagy egy beágyazott kifejezés (%>
) bezárása után egy XML-literálon belül. Példa:Dim customerXml = <Customer> <Name> <%= customer.Name %> </Name> <Email> <%= customer.Email %> </Email> </Customer>
További információ: Beágyazott kifejezések XML-ben.
Az összefűzési operátor (
&
) után. Példa:cmd.CommandText = "SELECT * FROM Titles JOIN Publishers " & "ON Publishers.PubId = Titles.PubID " & "WHERE Publishers.State = 'CA'"
További információ: Operátorok listázva funkció szerint.
Hozzárendelési operátorok után (
=
, ,&=
,+=
:=
,-=
,*=
,\=
/=
,^=
, ).>>=
<<=
Példa:Dim fileStream = My.Computer.FileSystem. OpenTextFileReader(filePath)
További információ: Operátorok listázva funkció szerint.
Bináris operátorok (
+
, ,/
-
,*
,Mod
,<>
,<
,>
,<=
,>=
,^
,>>
,<<
Or
AndAlso
OrElse
And
Like
)Xor
után egy kifejezésen belül. Példa:Dim memoryInUse = My.Computer.Info.TotalPhysicalMemory + My.Computer.Info.TotalVirtualMemory - My.Computer.Info.AvailablePhysicalMemory - My.Computer.Info.AvailableVirtualMemory
További információ: Operátorok listázva funkció szerint.
Az és
IsNot
azIs
operátorok után. Példa:If TypeOf inStream Is IO.FileStream AndAlso inStream IsNot Nothing Then ReadFile(inStream) End If
További információ: Operátorok listázva funkció szerint.
A tag minősítő karaktere (
.
) után és a tag neve előtt. Példa:Dim fileStream = My.Computer.FileSystem. OpenTextFileReader(filePath)
Ha azonban az utasítást használja
With
, vagy értékeket ad meg egy típus inicializálási listájában, a tag minősítő karakterét követő sor-folytatás karaktert (_
) kell tartalmaznia. Ha utasításokat vagy objektum inicializálási listákat használWith
,=
fontolja meg a hozzárendelési operátor utáni sortörést (például). Példa:' Not allowed: ' Dim aType = New With { . ' PropertyName = "Value" ' Allowed: Dim aType = New With {.PropertyName = "Value"} Dim log As New EventLog() ' Not allowed: ' With log ' . ' Source = "Application" ' End With ' Allowed: With log .Source = "Application" End With
További információ: With... Befejezés utasítással vagy objektum inicializálókkal: Névvel ellátott és névtelen típusok.
XML-tengely tulajdonság-minősítője (
.
vagy...
.@
) után. Ha azonban a kulcsszót használja, egy sor-folytatás karaktert (_
) kell megadnia, amikor tag-minősítőt adWith
meg. Példa:Dim customerName = customerXml. <Name>.Value Dim customerEmail = customerXml... <Email>.Value
További információ: XML-tengely tulajdonságai.
Egy attribútum megadásakor kisebb előjel (<) vagy nagyobb előjel (
>
) után. Egy attribútum megadásakor egy nagyobb előjel (>
) után is. Ha azonban szerelvényszintű vagy modulszintű attribútumokat ad meg, egy sorfolytatási karaktert (_
) kell tartalmaznia. Példa:< Serializable() > Public Class Customer Public Property Name As String Public Property Company As String Public Property Email As String End Class
További információ: Attribútumok áttekintése.
Lekérdezési operátorok (
Aggregate
, ,Distinct
,From
,Group By
,Group Join
,Join
,Let
,Order By
,Select
,Skip
Where
In
Take While
Skip While
Take
Into
,On
,Ascending
, és ).Descending
A több kulcsszóból (Order By
,Group Join
Take While
ésSkip While
) álló lekérdezési operátorok kulcsszavai között nem lehet vonalat bontani. Példa:Dim vsProcesses = From proc In Process.GetProcesses Where proc.MainWindowTitle.Contains("Visual Studio") Select proc.ProcessName, proc.Id, proc.MainWindowTitle
További információ: Lekérdezések.
In
A kulcsszó után egyFor Each
utasításban. Példa:For Each p In vsProcesses Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}", p.ProcessName, p.Id, p.MainWindowTitle) Next
További információ: Minden egyes... Következő utasítás.
From
A gyűjtemény inicializálójának kulcsszója után. Példa:Dim days = New List(Of String) From { "Mo", "Tu", "We", "Th", "F", "Sa", "Su" }
További információt a Gyűjtemény inicializálói című témakörben talál.
Megjegyzések hozzáadása
A forráskód nem mindig magától értetődő, még a programozónak sem, aki írta. A kód dokumentálásához ezért a programozók többsége liberálisan használja a beágyazott megjegyzéseket. A kódban szereplő megjegyzések elmagyarázhatnak egy eljárást vagy egy adott utasítást bárkinek, aki elolvassa vagy később dolgozik rajta. A Visual Basic figyelmen kívül hagyja a megjegyzéseket a fordítás során, és nem érintik a lefordított kódot.
A megjegyzéssorok egy aposztrófmal ('
) kezdődnek, vagy REM
szóközzel kezdődnek. A kód bármely pontjára felveheti őket, kivéve egy sztringen belül. Ha megjegyzést szeretne fűzni egy utasításhoz, szúrjon be egy aposztrófot vagy REM
az utasítás után, majd a megjegyzést. A megjegyzések külön sorba is léphetnek. Az alábbi példa ezeket a lehetőségeket mutatja be.
' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.
Fordítási hibák ellenőrzése
Ha a kódsor beírása után a vonal hullámos kék aláhúzással jelenik meg (hibaüzenet is jelenhet), az utasítás szintaxishibát jelez. Meg kell tudnia, hogy mi a probléma az utasítással (a feladatlistában való kereséssel, vagy a hiba egérmutatóval való rámutatásával és a hibaüzenet olvasásával), és ki kell javítania. Amíg nem javította a kód összes szintaxishibáját, a program nem fog megfelelően lefordítani.
Kapcsolódó szakaszok
Időszak | Definíció |
---|---|
Hozzárendelési operátorok | Olyan nyelvi referenciaoldalakra mutató hivatkozásokat tartalmaz, amelyek a hozzárendelési operátorokra, például = az , *= és &= a . |
Operátorok és kifejezések | Bemutatja, hogyan kombinálhatja az elemeket operátorokkal új értékek létrehozásához. |
Útmutató: Utasítások megszakítása és egyesítése a Kódban | Bemutatja, hogyan lehet egyetlen utasítást több sorra bontani, és hogyan helyezhet el több utasítást ugyanazon a sorban. |
Útmutató: Felirati utasítások | Bemutatja, hogyan címkézhet meg egy kódsort. |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: