Visual Basic'deki Deyimler

Deyimin Visual Basic eksiksiz bir yönergedir. Anahtar sözcükler, işleçler, değişkenler, sabitler ve ifadeler içerebilir. Her deyim aşağıdaki kategorilerden biri aittir:

  • Bir değişkeni, sabiti veya yordamı olarak adlandıran ve aynı zamanda bir veri türü belirten Bildirim Deyimleri.

  • Eylem başlatan Yürütülebilir Deyimler. Bu deyimler bir yöntemi veya işlevi çağırabilir ve kod blokları aracılığıyla döngü veya dallar. Yürütülebilir deyimler, bir değişkene veya sabite değer veya ifade ataan Atama Deyimleri içerir.

Bu konu başlığı altında her kategori açıklanmıştır. Ayrıca bu konu başlığında, tek bir satırda birden çok deyimin nasıl birleştirildi ve bir deyimin birden çok satır üzerinde nasıl devam ettiği açıklanmıştır.

Bildirim deyimleri

Yordamları, değişkenleri, özellikleri, dizileri ve sabitleri tanımlamak ve tanımlamak için bildirim deyimlerini kullanırsiniz. Bir programlama öğesi bildirgeniz, veri türünü, erişim düzeyini ve kapsamını da tanımlayabilirsiniz. Daha fazla bilgi için bkz. Bildirilen Öğe Özellikleri.

Aşağıdaki örnek üç bildirim içerir.

Public Sub ApplyFormat()
    Const limit As Integer = 33
    Dim thisWidget As New widget
    ' Insert code to implement the procedure.
End Sub

İlk bildirim Sub deyimidir. Eşleşen deyimiyle End Sub birlikte adlı bir yordam bildirmektedir. applyFormat Ayrıca , olduğunu da belirtir; başka bir ifadeyle başvurabilir applyFormat tüm Public kodlar tarafından çağrılabilir.

İkinci bildirim, veri türünü ve 33 değerini belirten sabiti Const limit belirten Integer deyimidir.

Üçüncü bildirim, Dim değişkenlerini bildiren thisWidget deyimidir. Veri türü, sınıftan oluşturulan bir nesne olan belirli bir Widget nesnedir. Bir değişkeni, herhangi bir basit veri türünde veya kullanmakta olan uygulamada ortaya konan herhangi bir nesne türünde olacak şekilde bildirebilirsiniz.

İlk Değerler

Bildirim deyimini içeren kod çalıştır çalıştır Visual Basic bildirilen öğe için gereken belleği yedekler. Öğe bir değer tutuyorsa, Visual Basic veri türü için varsayılan değere başlatılır. Daha fazla bilgi için bkz. Dim Deyiminde "Davranış".

Aşağıdaki örnekte gösterildiği gibi, bir değişkene bildiriminin bir parçası olarak bir başlangıç değeri attayın.

Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.

Bir değişken bir nesne değişkeni ise, aşağıdaki örnekte gösterildiği gibi New Operator anahtar sözcüğünü kullanarak bildirerek açıkça sınıfının bir örneğini oluşturabilirsiniz.

Dim f As New System.Windows.Forms.Form()

Bir bildirim deyiminde belirttiğiniz ilk değerin, yürütme bildirim deyimine ulaşana kadar bir değişkene atanmamış olduğunu unutmayın. Bu zamana kadar değişkeni, veri türü için varsayılan değeri içerir.

Yürütülebilir deyimler

Yürütülebilir deyim bir eylem gerçekleştirir. Bir yordamı çağırabilir, kodda başka bir yere dallar, çeşitli deyimlerde döngüler veya bir ifadeyi değerlendirebilirsiniz. Atama deyimi, yürütülebilir bir deyimin özel bir durumu olabilir.

Aşağıdaki örnek, bir If...Then...Else değişkenin değerine göre farklı kod bloklarını çalıştırmak için bir denetim yapısı kullanır. Her kod bloğunda, bir For...Next döngü belirtilen sayıda çalışır.

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

Önceki If örnekteki deyimi parametresinin değerini clockwise denetler. değeri ise True yöntemini spinClockwise çağıran bir değerdir. aWidget değeri ise False yöntemini spinCounterClockwise çağıran bir değerdir. aWidget Denetim If...Then...Else yapısı ile End If biter.

Her For...Next blok içindeki döngü, uygun yöntemi parametresinin değerine eşit bir dizi kez revolutions çağrır.

Atama deyimleri

Atama deyimleri, atama işlecinin ( ) sağ tarafındaki değeri almaktan ve aşağıdaki örnekte olduğu gibi sol tarafındaki öğede depolamaktan oluşan atama = işlemlerini gerçekleştirmektedir.

v = 42

Yukarıdaki örnekte, atama deyimi 42 değişmez değerini değişkende v depolar.

Uygun programlama öğeleri

Atama işlecinin sol tarafındaki programlama öğesinin bir değeri kabul etme ve depolaması gerekir. Bu, ReadOnlydeğil bir değişken veya özellik ya da bir dizi öğesi olması gerektiğini gösterir. Atama deyimi bağlamında, böyle bir öğe bazen "sol değer" için lvalue olarak da anlenir.

Atama işlecinin sağ tarafındaki değer bir ifade tarafından oluşturulur. Bu değer değişmez değerlerin, sabitlerin, değişkenlerin, özelliklerin, dizi öğelerinin, diğer ifadelerin veya işlev çağrılarının herhangi bir bileşimini içerebilir. Aşağıdaki örnek bunu göstermektedir.

x = y + z + FindResult(3)

Yukarıdaki örnek değişkende yer alan değeri değişkende yer alan değerine ekler ve ardından işlevi çağrısı y z tarafından döndürülen değeri findResult ekler. Bu ifadenin toplam değeri daha sonra değişkensinde x depolanır.

Atama deyimlerinde veri türleri

Aşağıdaki örnekte gösterildiği gibi, sayısal değerlere ek olarak atama işleci de String değer atay sahiptir.

Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.

Aşağıdaki örnekte gösterildiği Boolean gibi bir değişmez değer veya ifade kullanarak da değerler Boolean Boolean atebilirsiniz.

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.

Benzer şekilde, , veya veri türünün programlama öğelerine Char uygun Date değerleri Object atabilirsiniz. Ayrıca, bir nesne örneğini, örneğin oluşturulacak sınıfından olduğu bildirilen bir öğeye atabilirsiniz.

Bileşik atama deyimleri

Bileşik atama deyimleri, bir programlama öğesine atamadan önce bir ifade üzerinde işlem gerçekleştirecek. Aşağıdaki örnek, işlecinin sol tarafındaki değişkenin değerini sağ tarafındaki ifadenin değeriyle artıran bu += işleçlerden birini gösterir.

n += 1

Yukarıdaki örnek değerine 1 ekler n ve ardından bu yeni değeri içinde depolar. n Bu, aşağıdaki deyimin kısa bir eşdeğeridir:

n = n + 1

Bu tür işleçler kullanılarak çeşitli bileşik atama işlemleri yapılabilir. Bu işleçlerin listesi ve bunlar hakkında daha fazla bilgi için bkz. Atama İşleçleri.

Aşağıdaki örnekte gösterildiği gibi, concatenation assignment işleci ( ) zaten mevcut dizelerin sonuna dize &= eklemek için yararlıdır.

Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".

Atama Deyimleri'ne Tür Dönüştürmeleri

Bir değişken, özellik veya dizi öğesine atadığınız değer, bu hedef öğeye uygun bir veri türünde olması gerekir. Genel olarak, hedef öğeyle aynı veri türüne sahip bir değer üretmeye çalışmanız gerekir. Ancak, bazı türler atama sırasında diğer türlere dönüştürülür.

Veri türleri arasında dönüştürme hakkında daha fazla bilgi için bkz.Visual Basic. Kısaca, Visual Basic türün değerini otomatik olarak genişletilen başka bir türe dönüştürür. Genişleten dönüştürme, çalışma zamanında her zaman başarılı olan ve veri kaybetmeden bir dönüştürme işlemidir. Örneğin, Visual Basic uygun olduğunda değerine dönüştürür, çünkü Integer Double Integer değerine Double genişler. Daha fazla bilgi için, bkz. Widening and Narrowing Conversions.

Daraltma dönüştürmeleri (genişlen değil), çalışma zamanında hata veya veri kaybı riski taşır. Bir tür dönüştürme işlevi kullanarak bir daraltma dönüştürmesi açıkça gerçekleştirebilirsiniz veya ayararak derleyiciyi tüm dönüştürmeleri örtülü olarak gerçekleştirmeye Option Strict Off yönlendirebilirsiniz. Daha fazla bilgi için bkz. Örtülü ve Açık Dönüştürmeler.

Tek satıra birden çok deyim koyma

İki nokta ( ) karakteriyle ayrılmış tek bir satırda birden çok : deyiminiz olabilir. Aşağıdaki örnek bunu göstermektedir.

Dim sampleString As String = "Hello World" : MsgBox(sampleString)

Bazen kullanışlı olsa da, bu söz dizimi biçimi kodunuzun okunma ve bakımının zor olmasına neden olur. Bu nedenle, bir deyimi satırda tutman önerilir.

Bir deyimi birden çok satırda devam ettirin

Deyimi genellikle bir satıra sığar, ancak çok uzun olduğunda, bir satır devamlılığı dizisi kullanarak bir boşluk ve ardından bir alt çizgi karakteri ( ) ve ardından bir satır başı kullanarak bir sonraki satıra devam _ edin. Aşağıdaki örnekte yürütülebilir MsgBox deyim iki satırdan fazla devam eder.

Public Sub DemoBox()
    Dim nameVar As String
    nameVar = "John"
    MsgBox("Hello " & nameVar _
        & ". How are you?")
End Sub

Örtülü satır devamlılığı

Çoğu durumda, alt çizgi karakterini () kullanmadan bir sonraki ardışık satırda deyimine devam _ edin. Aşağıdaki söz dizimi öğeleri, sonraki kod satırı üzerinde deyimini örtülü olarak devam eder.

  • Virgülden sonra ( , ). Örnek:

    Public Function GetUsername(ByVal username As String,
                                ByVal delimiter As Char,
                                ByVal position As Integer) As String
    
        Return username.Split(delimiter)(position)
    End Function
    
  • Açık parantezden ( ( ) sonra veya kapatma parantezi () ) önce. Örnek:

    Dim username = GetUsername(
        Security.Principal.WindowsIdentity.GetCurrent().Name,
        CChar("\"),
        1
      )
    
  • Açık küme ayracı ( { ) veya kapanış küme ayracı () } öncesinde. Örnek:

    Dim customer = New Customer With {
      .Name = "Terry Adams",
      .Company = "Adventure Works",
      .Email = "terry@www.adventure-works.com"
    }
    

    Daha fazla bilgi için bkz. Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler veya Koleksiyon Başlatıcıları.

  • Açık bir katıştırılmış ifadeden ( ) sonra veya bir XML değişmez değişmezi içindeki katıştırılmış <%= ifadenin ( ) %> kapanmadan önce. Örnek:

    Dim customerXml = <Customer>
                          <Name>
                              <%=
                                  customer.Name
                              %>
                          </Name>
                          <Email>
                              <%=
                                  customer.Email
                              %>
                          </Email>
                      </Customer>
    

    Daha fazla bilgi için bkz. XML'de Katıştırılmış İfadeler.

  • Concatenation işlecinin ( ) & ardından. Örnek:

    cmd.CommandText = 
        "SELECT * FROM Titles JOIN Publishers " &
        "ON Publishers.PubId = Titles.PubID " &
        "WHERE Publishers.State = 'CA'"
    

    Daha fazla bilgi için bkz. İşlevselliğe Göre Listelenen İşleçler.

  • Atama işleçleri ( = , , , , , , , , &= ) := += -= *= /= \= ^= <<= >>= sonra. Örnek:

    Dim fileStream =
      My.Computer.FileSystem.
        OpenTextFileReader(filePath)
    

    Daha fazla bilgi için bkz. İşlevselliğe Göre Listelenen İşleçler.

  • Bir ifade içindeki ikili işleçler ( , + - / * Mod <> < > <= ) >= ^ >> << And AndAlso Or OrElse Like Xor sonra. Örnek:

    Dim memoryInUse =
      My.Computer.Info.TotalPhysicalMemory +
      My.Computer.Info.TotalVirtualMemory -
      My.Computer.Info.AvailablePhysicalMemory -
      My.Computer.Info.AvailableVirtualMemory
    

    Daha fazla bilgi için bkz. İşlevselliğe Göre Listelenen İşleçler.

  • ve Is IsNot işleçleri sonrasında. Örnek:

    If TypeOf inStream Is 
      IO.FileStream AndAlso
      inStream IsNot
      Nothing Then
    
        ReadFile(inStream)
    
    End If
    

    Daha fazla bilgi için bkz. İşlevselliğe Göre Listelenen İşleçler.

  • Üye niteleyici karakterinden ( . ) sonra ve üye adının önünde. Örnek:

    Dim fileStream =
      My.Computer.FileSystem.
        OpenTextFileReader(filePath)
    

    Ancak, deyimini kullanırken veya bir tür için başlatma listesinde değerler sağlarken bir üye niteleyici karakterinin ardından bir satır devamlılığı karakteri ( _ ) With dahil etmek gerekir. Deyimleri veya nesne başlatma listelerini kullanırken atama işlecinden sonra satırı (örneğin, = ) With bozmayı göz önünde bulundurabilirsiniz. Örnek:

    ' 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
    

    Daha fazla bilgi için bkz. Ile... End With Deyimi veya Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler.

  • XML ekseni özellik niteleyicisi ( veya . .@ veya ) ... sonra. Ancak, anahtar sözcüğünü kullanırken bir üye niteleyicisi belirtirken bir satır devamlılığı karakteri ( _ ) dahil With etmek gerekir. Örnek:

    Dim customerName = customerXml.
      <Name>.Value
    
    Dim customerEmail = customerXml...
      <Email>.Value
    

    Daha fazla bilgi için bkz. XML Eksen Özellikleri.

  • Bir öznitelik belirttiğinizde, küçük (< işaretinden) veya büyüktür işaretinden ( > ) önce. Ayrıca, bir öznitelik belirttiğinizde büyüktür işaretinden ( > ) sonra. Ancak, derleme düzeyi veya modül düzeyi öznitelikleri belirtirken bir satır devamlılığı karakteri ( _ ) dahil etmek gerekir. Örnek:

    <
    Serializable()
    >
    Public Class Customer
        Public Property Name As String
        Public Property Company As String
        Public Property Email As String
    End Class
    

    Daha fazla bilgi için bkz. Özniteliklere genel bakış.

  • Sorgu işleçleri ( , , , , , , , , , , , , , , ve ) önce ve Aggregate Distinct From Group By Group Join Join Let Order By Select Skip Skip While Take Take While Where In Into On Ascending Descending sonra. Birden çok anahtar sözcük ( , , ve ) içeren sorgu işleçlerinin anahtar sözcükleri arasındaki bir satırı Order By Group Join Take While kıramazsınız. Skip While Örnek:

    Dim vsProcesses = From proc In
                        Process.GetProcesses
                      Where proc.MainWindowTitle.Contains("Visual Studio")
                      Select proc.ProcessName, proc.Id,
                             proc.MainWindowTitle
    

    Daha fazla bilgi için bkz. Sorgular.

  • deyiminde In anahtar sözcüğünden For Each sonra. Örnek:

    For Each p In
      vsProcesses
    
        Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
          p.ProcessName,
          p.Id,
          p.MainWindowTitle)
    Next
    

    Daha fazla bilgi için bkz. For Each... Next Deyimi.

  • Koleksiyon From başlatıcıda anahtar sözcüğünün ardından. Örnek:

    Dim days = New List(Of String) From
      {
       "Mo", "Tu", "We", "Th", "F", "Sa", "Su"
      }
    

    Daha fazla bilgi için bkz. Koleksiyon Başlatıcıları.

Açıklama ekleme

Kaynak kodu yazan programcı bile her zaman açıklayıcı değildir. Bu nedenle, çoğu programcı kodunu belgeleye yardımcı olmak için ekli yorumları kullanır. Kodda açıklamalar, bir yordamı veya belirli bir yönergeyi daha sonra okuyan veya bu yordamla çalışan herkese açıklayabilir. Visual Basic derleme sırasında yorumları yoksayıyor ve derlenmiş kodu etkilemez.

Açıklama satırları kesme işaretiyle ( ) başlar ' veya REM ardından boşluk işaretiyle başlar. Bunlar bir dize dışında kod içinde herhangi bir yere eklenebilir. Bir deyimine açıklama eklemek için bir kesme işareti veya deyiminden sonra REM açıklamayı ekler. Açıklamalar kendi ayrı satırlarında da gidebilir. Aşağıdaki örnekte bu olasılıklar gösterildi.

' 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.

Derleme hatalarını denetleme

Bir kod satırı yazdikten sonra satır dalgalı mavi alt çizgiyle görüntülenirse (hata iletisi de görünebilir), deyiminde söz dizimi hatası vardır. deyiminde neyin yanlış olduğunu bulmanız (görev listesine bakarak veya fare işaretçisi ile hatanın üzerine gelerek ve hata iletisini okuyarak) ve düzeltmeniz gerekir. Kodundaki tüm söz dizimi hatalarını düzeltene kadar programınız düzgün derleyenemz.

Süre Tanım
Atama İşleçleri , ve gibi atama işleçlerini kapsayan dil başvuru = *= sayfalarına bağlantılar &= sağlar.
İşleçler ve İfadeler Yeni değerler elde etmek için öğeleri işleçlerle birleştirmeyi gösterir.
Nasıl yapılır: Kodda Deyimleri Bölme ve Birleştirme Tek bir deyimin birden çok satıra nasıl ayrılarak ve aynı satıra birden çok deyimin nasıl yer alınarak ayrılacaklarını gösterir.
Nasıl yapılır: Etiket Deyimleri Bir kod satırı etiketlemeyi gösterir.