Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Visual Basic'teki bir deyim 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 birine aittir:
Bir değişkeni, sabiti veya yordamı adlandıran ve bir veri türü de belirtebilen Bildirim Deyimleri.
Eylemleri başlatan Yürütülebilir Deyimler. Bu deyimler bir yöntem veya işlev çağırabilir ve kod blokları aracılığıyla döngü veya dallanma yapabilir. Yürütülebilir deyimler, bir değişkene veya sabite değer veya ifade atayan Atama Deyimlerini içerir.
Bu konuda her kategori açıklanmaktadır. Ayrıca bu konu başlığında, birden çok deyimin tek bir satırda nasıl birleştirildiği ve bir deyimin birden çok satır üzerinden nasıl devam etmesi anlatılmaktadır.
Tanımlama ifadeleri
Yordamları, değişkenleri, özellikleri, dizileri ve sabitleri adlandırmak ve tanımlamak için bildirim deyimlerini kullanırsınız. Bir programlama öğesi bildirdiğinizde, 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 ifade Sub ifadesidir. Eşleşen End Sub deyimiyle birlikte, adı applyFormat olan bir yordam bildirir. Aynı zamanda applyFormat öğesinin Public olduğunu belirtir; bu da, buna başvurabilen herhangi bir kodun bunu çağırabileceği anlamına gelir.
İkinci bildirim, veri türünü ve 33 değerini belirten sabitini Constlimit bildiren deyimidirInteger.
Üçüncü bildiri, Dim deyimi olup thisWidget değişkenini bildirir. Veri türü belirli bir nesnedir, yani Widget sınıfından oluşturulmuş bir nesnedir. Bir değişkeni, kullandığınız uygulamada kullanıma sunulan herhangi bir temel veri türünden veya herhangi bir nesne türünden olacak şekilde bildirebilirsiniz.
İlk Değerler
Bildirim deyimi içeren kod çalıştırıldığında, Visual Basic bildirilen öğe için gereken belleği ayırır. Öğe bir değer barındırıyorsa, Visual Basic bunu veri türü için varsayılan değere başlatır. Daha fazla bilgi için Dim Deyimi'ndeki "Davranış" bölümüne bakın.
Aşağıdaki örnekte gösterildiği gibi, bir değişkene bildiriminin bir parçası olarak bir başlangıç değeri atayabilirsiniz.
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Değişken bir nesne değişkeniyse, aşağıdaki örnekte gösterildiği gibi New Operator anahtar sözcüğünü kullanarak bunu bildirdiğinizde sınıfının bir örneğini açıkça oluşturabilirsiniz.
Dim f As New FileInfo("filename")
Bir bildirim deyiminde belirttiğiniz ilk değerin, yürütme bildirim deyimine ulaşana kadar bir değişkene atanmadığını unutmayın. Bu zamana kadar değişken, veri türü için varsayılan değeri içerir.
Yürütülebilir ifadeler
Yürütülebilir deyim bir eylem gerçekleştirir. Bir yordamı çağırabilir, kodun başka bir yerine dallayabilir, çeşitli deyimler arasında döngü yapabilir veya bir ifadeyi değerlendirebilir. Atama deyimi, yürütülebilir bir deyimin özel bir durumudur.
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ıştırılı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
If Yukarıdaki örnekteki deyimi parametresinin clockwisedeğerini denetler. Eğer değer True ise, spinClockwise'nin aWidget yöntemini çağırır. Eğer değer False ise, spinCounterClockwise'nin aWidget yöntemini çağırır. Denetim yapısı If...Then...Else, End If ile sona erer.
Her For...Next blok içindeki döngü, parametrenin değerine revolutions eşit sayıda uygun yöntemi çağırır.
Atama ifadeleri
Atama deyimleri, aşağıdaki örnekte olduğu gibi atama işlecinin (=) sağ tarafındaki değeri alıp soldaki öğede depolamayı içeren atama işlemlerini gerçekleştirir.
v = 42
Yukarıdaki örnekte, atama deyimi 42 değişmez değerini değişken v içinde saklar.
Uygun programlama öğeleri
Atama işlecinin sol tarafındaki programlama öğesinin bir değeri kabul edebilmesi ve depolayabilmesi gerekir. Bu, ReadOnly olmayan bir değişken veya özellik ya da bir dizi öğesi olması gerektiği anlamına gelir. Atama deyimi bağlamında, böyle bir öğe bazen "sol değer" için lvalue olarak adlandırılır.
Atama işlecinin sağ tarafındaki 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 birleşiminden oluşabilen bir ifade tarafından oluşturulur. Aşağıdaki örnekte bu gösterilmektedir.
x = y + z + FindResult(3)
Önceki örnek, değişken y içinde tutulan değeri değişken z içinde tutulan değere ekler ve ardından çağırma işlemiyle döndürülen değeri işlev findResult'ye ekler. Bu ifadenin toplam değeri daha sonra değişkeninde xdepolanır.
Atama deyimlerindeki veri türleri
Aşağıdaki örnekte gösterildiği gibi, atama işleci sayısal değerlere ek olarak değerler de atayabilir String .
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
Ayrıca, aşağıdaki örnekte gösterildiği gibi, Boolean değişmez bir değer veya Boolean ifade kullanarak Boolean değerler atayabilirsiniz.
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, , Charveya Date veri türünün programlama öğelerine Objectuygun değerler atayabilirsiniz. Nesne örneğini, o örneğin oluşturulduğu sınıftan olduğu bildirilen bir öğeye de atayabilirsiniz.
Bileşik atama ifadeleri
Bileşik atama deyimleri , bir programlama öğesine atamadan önce bir ifade üzerinde bir işlem gerçekleştirir. Aşağıdaki örnek, +=işlecin sol tarafındaki değişkenin değerini sağdaki ifadenin değeriyle artıran bu işleçlerden birini gösterir.
n += 1
Yukarıdaki örnek, değerine n1 ekler ve ardından bu yeni değeri içinde ndepolar. Aşağıdaki deyimin kısaltma eşdeğeridir:
n = n + 1
Bu tür işleçler kullanılarak çeşitli bileşik atama işlemleri gerçekleştirilebilir. Bu işleçlerin listesi ve bunlar hakkında daha fazla bilgi için Atama İşleçleri sayfasına bakın.
Birleştirme atama işleci (&=), aşağıdaki örnekte gösterildiği gibi zaten var olan dizelerin sonuna bir dize eklemek için kullanışlıdır.
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Atama İfadelerinde Tür Dönüştürmeleri
Bir değişkene, özelliğe veya dizi öğesine atadığınız değer, bu hedef öğeye uygun bir veri türünde olmalıdır. Genel olarak, hedef öğeninkiyle aynı veri türünde bir değer oluşturmayı denemeniz gerekir. Ancak, atama sırasında bazı türler diğer türlere dönüştürülebilir.
Veri türleri arasında dönüştürme hakkında bilgi için bkz. Visual Basic'te Tür Dönüştürmeleri. Kısaca ifade etmek gerekirse, Visual Basic belirli bir türdeki bir değeri, genişleyebileceği başka bir türe otomatik olarak dönüştürür.
Genişletme dönüştürmesi, çalışma zamanında her zaman başarılı olan ve veri kaybetmeyen bir dönüştürmedir. Örneğin, Visual Basic Integer'yi Double'a genişlettiği için, uygun olduğunda Integer değerini Double değerine dönüştürür. Daha fazla bilgi için bkz. Genişletme ve Daraltma Dönüştürmeleri.
Daraltma dönüştürmeleri (genişletmeyenler) çalışma zamanında hata veya veri kaybı riski taşır. Tür dönüştürme işlevini kullanarak açıkça bir daraltma dönüştürmesi gerçekleştirebilir veya derleyiciyi ayarlayarak Option Strict Offörtük olarak tüm dönüştürmeleri gerçekleştirmeye yönlendirebilirsiniz. Daha fazla bilgi için bkz. Örtük ve Açık Dönüştürmeler.
Tek satıra birden çok deyim yerleştirme
Tek bir satırda iki nokta (:) karakteriyle ayrılmış birden çok ifadeniz olabilir. Aşağıdaki örnekte bu gösterilmektedir.
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Bazen kullanışlı olsa da, bu söz dizimi biçimi kodunuzun okunmasını ve bakımının zor olmasını sağlar. Bu nedenle, bir ifadeyi bir satırda tutmanız önerilir.
Bir ifadeyi birden çok satırda sürdürme
Bir ifade genellikle bir satıra sığar, ancak çok uzun olduğunda, bir boşluk ve ardından bir alt çizgi karakteri (_) ve sonrasında bir satır kaydırma kullanarak bir sonraki satıra devam edebilirsiniz. Aşağıdaki örnekte, yürütülebilir MsgBox deyim iki satıra yayılmaktadır.
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Gizli satır devamı
Çoğu durumda, alt çizgi karakterini (_) kullanmadan bir ifadeyi sonraki ardışık satırda devam edebilirsiniz. Aşağıdaki söz dizimi öğeleri, deyimini bir sonraki kod satırında örtük olarak sürdürmektedir.
Virgülden (
,) sonra. Örneğin:Public Function GetUsername(ByVal username As String, ByVal delimiter As Char, ByVal position As Integer) As String Return username.Split(delimiter)(position) End FunctionAçık parantezden (
() sonra veya kapatma parantezi ()) öncesinde. Örneğin:Dim username = GetUsername( Security.Principal.WindowsIdentity.GetCurrent().Name, CChar("\"), 1 )Açık bir küme ayracından (
{) sonra veya kapanış küme ayracından (}) önce. Örneğin: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 XML katıştırılmış ifadesinden (
<%=) sonra veya bir XML literali içindeki katıştırılmış ifadenin (%>) kapatılmasından önce. Örneğin: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.
Birleştirme işlecinden (
&) sonra. Örneğin: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çlerinden sonra (
=,&=,:=,+=,-=,*=,/=,\=,^=,<<=,>>=). Örneğin: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çlerden (
+,-,/,*,Mod,<>,<,>,<=,>=,^,>>,<<,And,AndAlso,Or,OrElse,Like,Xor) sonra. Örneğin:Dim memoryInUse = My.Computer.Info.TotalPhysicalMemory + My.Computer.Info.TotalVirtualMemory - My.Computer.Info.AvailablePhysicalMemory - My.Computer.Info.AvailableVirtualMemoryDaha fazla bilgi için bkz . İşlevselliğe Göre Listelenen İşleçler.
IsveIsNotişleçlerinden sonra. Örneğin:If TypeOf inStream Is IO.FileStream AndAlso inStream IsNot Nothing Then ReadFile(inStream) End IfDaha fazla bilgi için bkz . İşlevselliğe Göre Listelenen İşleçler.
Üye niteleyici karakterinden (
.) sonra ve üye adının öncesinde. Örneğin:Dim fileStream = My.Computer.FileSystem. OpenTextFileReader(filePath)Ancak,
_deyimini kullanırken veya bir tür için başlatma listesinde değerler sağlarken üye niteleyici karakterini izleyen bir satır devamlılığı karakteri (With) eklemeniz gerekir. "=ifadelerini veya nesne başlatma listelerini kullanırken, atama işlecinden sonraki satırı (örneğin,With) kesmeyi göz önünde bulundurun." Örneğin:' 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 WithDaha fazla bilgi için With...End With Deyimi veya Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler bölümüne bakın.
XML ekseni özellik niteleyicisinden (
.veya.@veya...) sonra. Ancak,_anahtar sözcüğünü kullanırken bir üye niteleyicisi belirtirken bir satır devamlılığı karakteri (With) eklemeniz gerekir. Örneğin:Dim customerName = customerXml. <Name>.Value Dim customerEmail = customerXml... <Email>.ValueDaha fazla bilgi için bkz. XML Ekseni Özellikleri.
Bir öznitelik belirttiğinizde küçüktür işaretinden (<) sonra 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 (_) eklemeniz gerekir. Örneğin:< Serializable() > Public Class Customer Public Property Name As String Public Property Company As String Public Property Email As String End ClassDaha fazla bilgi için bkz . Özniteliklere genel bakış.
Sorgu operatörlerinden önce ve sonra (
Aggregate,Distinct,From,Group By,Group Join,Join,Let,Order By,Select,Skip,Skip While,Take,Take While,Where,In,Into,On,AscendingveDescending). Birden çok anahtar sözcükten (Order By,Group Join,Take WhileveSkip While) oluşan sorgu işleçlerinin anahtar sözcükleri arasındaki çizgiyi kesemezsiniz. Örneğin:Dim vsProcesses = From proc In Process.GetProcesses Where proc.MainWindowTitle.Contains("Visual Studio") Select proc.ProcessName, proc.Id, proc.MainWindowTitleDaha fazla bilgi için bkz. Sorgular.
InifadesindeFor Eachanahtar sözcüğünden sonra. Örneğin:For Each p In vsProcesses Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}", p.ProcessName, p.Id, p.MainWindowTitle) NextDaha fazla bilgi için bkz. For Each...Next Deyimi.
Koleksiyon başlatıcıda
Fromanahtar sözcüğünden sonra. Örneğin: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ı için bile her zaman açıklayıcı değildir. Bu nedenle çoğu programcı, kodlarını belgeleye yardımcı olmak için ekli açıklamaları serbest olarak kullanır. Koddaki açıklamalar, bir yordamı veya belirli bir yönergeyi daha sonra okuyan veya bununla çalışan herkese açıklayabilir. Visual Basic derleme sırasında açıklamaları yoksayar ve derlenmiş kodu etkilemez.
Açıklama satırları bir kesme işaretiyle (') veya REM ardından boşlukla başlar. Bunlar, bir dize dışında kodun herhangi bir yerine eklenebilir. Deyimine açıklama eklemek için, bir kesme işareti ekleyin veya REM deyiminin arkasına ve ardından açıklamayı ekleyin. Açıklamalar kendi satırlarında da yer alabilir. Aşağıdaki örnekte bu olasılıklar gösterilmektedir.
' 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ı yazdıktan sonra, satır dalgalı mavi alt çizgiyle görüntülenirse (hata mesajı da görünebilir), ifadenizde bir sözdizimi hatası vardır. Deyiminde nelerin yanlış olduğunu bulmanız (görev listesine bakarak veya fare işaretçisiyle hatanın üzerine gelip hata iletisini okuyarak) ve bunu düzeltmeniz gerekir. Kodunuzdaki tüm söz dizimi hatalarını düzeltene kadar, programınız doğru derlenemeyen bir programdır.
İlgili bölümler
| Süre | Tanım |
|---|---|
| atama işleçlerini | Dil başvuru sayfalarına, =, *= ve &= gibi atama işleçlerine yönelik bağlantılar sağlar. |
| İşleçler ve İfadeler | Yeni değerler vermek için öğelerin işleçlerle nasıl birleştirildiği gösterilir. |
| Nasıl yapılır: Kodda Deyimleri Kesme ve Birleştirme | Tek bir deyimin birden çok satıra nasıl kesileceğini ve aynı satıra birden çok deyimin nasıl yerleştirileceğini gösterir. |
| Nasıl yapılır: Etiket Deyimleri | Bir kod satırını etiketlemeyi gösterir. |