Dim Deyimi (Visual Basic)
Bildirir ve bir veya daha fazla değişkenleri için depolama alanı ayırır.
[ <attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]] [ ReadOnly ]
Dim [ WithEvents ] variablelist
Bölümleri
Terim |
Tanım |
||||||||||||||||||
attributelist |
İsteğe Bağlı.Bkz: öznitelik listesi. |
||||||||||||||||||
accessmodifier |
İsteğe Bağlı.Aşağıdakilerden biri olabilir: |
||||||||||||||||||
Shared |
İsteğe Bağlı.Bkz: Paylaşılan. |
||||||||||||||||||
Shadows |
İsteğe Bağlı.Bkz: gölgeleri. |
||||||||||||||||||
Static |
İsteğe Bağlı.Bkz: statik. |
||||||||||||||||||
ReadOnly |
İsteğe Bağlı.Bkz: salt okunur. |
||||||||||||||||||
WithEvents |
İsteğe Bağlı.Bunlar, olayları yükseltebilirsiniz bir sınıfın örneklerine bakın nesne değişkenleri belirtir.Bkz: WithEvents. |
||||||||||||||||||
variablelist |
Gerekli.Bu deyim içinde bildirilen değişkenler listesi. variable [ , variable ... ] Her variable aşağıdaki sözdizimi ve bölümleri vardır: variablename [ ( [ boundslist ] ) ] [ As [ New ] datatype [ With { [ .propertyname = propinitializer [ , ... ] ] } ] ] [ = initializer ]
|
Notlar
Visual Basic Derleyici kullanır Dim deyimi değişkenin veri türü ve hangi kod değişkenine erişebilir gibi diğer bilgileri belirlemek için.Aşağıdaki örnek tutacak bir değişken bildiren bir Integer değeri.
Dim numberOfStudents As Integer
Herhangi bir veri türü veya numaralandırma, yapısı, sınıf veya arabirim adını belirtebilirsiniz.
Dim finished As Boolean
Dim monitorBox As System.Windows.Forms.Form
Başvuru türü için kullandığınız New veri türüne göre yapı veya sınıfın yeni bir örneğini oluşturmak için anahtar sözcüğü belirtildi.Kullanırsanız, New, başlatıcı ifade kullanmayın.Bunun yerine, değişken oluşturuyorsanız sınıfının yapıcısına gerekiyorsa, bağımsız değişkenleri sağlayın.
Dim bottomLabel As New System.Windows.Forms.Label
Yordam, blok, sınıf, yapı veya modül değişkende bildirebilirsiniz.Kaynak dosya, ad veya arabirim bir değişkende bildirimini yapamazsınız.Daha fazla bilgi için bkz. Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri (Visual Basic).
Modül düzeyinde herhangi bir yordam dışında bildirilen bir değişken olan bir bir üye değişkeni veya alan.Üye değişkenleri kendi sınıf, yapı veya modül boyunca kapsam içindedir.Yordam düzeyinde bildirilen bir değişken olan bir bir yerel değişken.Yerel değişkenleri yordam ya da blok içinde kapsamı içindedir.
Aşağıdaki erişim değiştiricileri yordam dışında değişkenleri bildirmek için kullanılır: Public, Protected, Friend, Protected Friend, ve Private.Daha fazla bilgi için bkz. Visual Basic'de Erişim Düzeyleri.
The Dim keyword is optional and usually omitted if you specify any of the following modifiers: Public, Protected, Friend, Protected Friend, Private, Shared, Shadows, Static, ReadOnly, or WithEvents.
Public maximumAllowed As Double
Protected Friend currentUserName As String
Private salary As Decimal
Static runningTotal As Integer
Option Explicit İse (varsayılan), derleyici, kullandığınız her değişken için bir bildirim gerektirir.Daha fazla bilgi için bkz. Option Explicit Deyimi (Visual Basic).
Başlangıç değeri belirtme
Oluşturulduğunda bir değişkene bir değer atayabilirsiniz.Kullandığınız bir değer türü için bir Başlatıcı değişkenine atanacak bir ifade sağlamak için.Çalışma zamanında hesaplanan bir sabite ifade değerlendirmelidir.
Dim quantity As Integer = 10
Dim message As String = "Just started"
Bir başlatıcı belirtilir ve veri türü belirtilmemiş bir As yan tümcesi, Tür çıkarımı başlatıcı veri türünden gerçekleştirip kullanılır.Aşağıdaki örnekte, hem de num1 ve num2 türü tamsayılar belirlenmiş.İkinci bildiriminde tür çıkarımı 3 değer türünden içerilen.
' Use explicit typing.
Dim num1 As Integer = 3
' Use local type inference.
Dim num2 = 3
Tür çıkarımı yordamı düzeyinde geçerlidir.Sınıf, yapı, modül veya arabirim yordam dışında uygulanmaz.Tür çıkarımı hakkında daha fazla bilgi için bkz: Option Infer Deyimi ve Yerel Türü Arabirimi (Visual Basic Başvurusu).
Veri türü veya başlatıcı belirtilmediyse neler olduğu hakkında daha fazla bilgi için bkz: Varsayılan veri türlerini ve değerleri bu konuda daha sonra.
Kullanabileceğiniz bir nesne Başlatıcısı adlandýrýlmýþ ve anonim türlerin örnekleri bildirmek için.Aşağıdaki kod örneği oluşturur bir Student sınıf ve nesne Başlatıcısı özellikleri kullanır.
Dim student1 As New Student With {.First = "Michael",
.Last = "Tucker"}
Nesne başlatıcıları hakkında daha fazla bilgi için bkz: Nasıl yapılır: Nesne Başlatıcı Kullanarak Bir Nesne Bildirme (Visual Basic), Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler (Visual Basic), ve Anonim Türleri (Visual Basic).
Birden fazla değişkenleri bildirmek
Her dizi adı parantezli izleyerek ve her biri için değişken adını belirten bir bildirim deyimi içinde birkaç değişkenleri bildirebilirsiniz.Birden fazla değişkenleri virgüllerle ayrılır.
Dim lastTime, nextTime, allTimes() As Date
Bir birden fazla değişken bildirirseniz As yan tümcesi, bu değişken grubu için bir başlatıcı sağlayamıyor.
Ayrı bir kullanarak farklı veri türleri için farklı değişkenleri belirtmek As , bildirdiğiniz her değişken için yan tümcesi.İlk belirtilen veri türü her değişken alır As yan tümcesi karşılaştı sonra kendi variablename bölümü.
Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double
Diziler
Tutacak bir değişken bildirmek bir dizi, hangi tutun birden çok değer.Değişken bir dizi tutan belirtmek için izleyin, variablename hemen parantezli.Diziler hakkında daha fazla bilgi için bkz: Visual Basic'de Diziler.
Alt ve her bir dizinin boyutu üst sınırını belirtebilirsiniz.Bunu yapmak için bir boundslist parantez içinde.Her boyut için boundslist üst sınır ve isteğe bağlı alt sınır belirtir.Olup olmadığını belirtin alt sınır her zaman sıfırdır.Her dizin aracılığıyla üst sınır değeri sıfırdan değişebilir.
Aşağıdaki iki ifade eşdeğerdir.Her ifade bir dizi 21 bildirir Integer öğeleri.Dizi eriştiğinizde, dizin 0 ile 20 arasında değişebilir.
Dim totals(20) As Integer
Dim totals(0 To 20) As Integer
Aşağıdaki ifade, iki boyutlu bir dizi türü bildirir Double.Dizi 4 6 sütun (5 + 1 her) satır (3 + 1) vardır.Üst sınır dizin boyutun uzunluğu için olası en yüksek değere temsil ettiğini unutmayın.Artı bir üst sınır boyutu uzunluğudur.
Dim matrix2(3, 5) As Double
Bir dizi 1'den 32 boyutlarına sahip olabilir.
Sınırları içinde bir dizi bildirimi boş bırakabilirsiniz.Bunu yaparsanız, belirttiğiniz boyut sayısını dizi var, ancak başlatılmamış.Bir değeri olan Nothing az başlatmak kadar öğelerinden bazıları.Dim İfadesi tüm boyutları veya hiçbir boyut sınırlarını belirtmeniz gerekir.
' Declare an array with blank array bounds.
Dim messages() As String
' Initialize the array.
ReDim messages(4)
Dizi birden fazla boyut, boyut sayısını belirtmek için ayraç arasında virgül eklemeniz gerekir.
Dim oneDimension(), twoDimensions(,), threeDimensions(,,) As Byte
Bildirebilirsiniz bir sıfır uzunluklu dizi -1 olacak şekilde dizinin boyutlardan birini bildirmek.Sıfır uzunluklu dizi tutan bir değişken değeri yok Nothing.Sıfır uzunlukta diziler belirli ortak dil çalışma zamanı işlevleri gereklidir.Bir dizi erişmeyi denerseniz, çalışma zamanı özel durumu oluşur.Daha fazla bilgi için bkz. Visual Basic'de Diziler.
Bir dizi değerleri bir dizi değişmezi kullanarak başlatabilirsiniz.Bunu yapmak için başlangıç değerleri kaşlı ile surround ({}).
Dim longArray() As Long = {0, 1, 2, 3}
Çok boyutlu diziler için ayrı her boyut için başlatma dış boyut ayraç içine alınır.Öğeleri ana satır sırasına göre belirlenir.
Dim twoDimensions(,) As Integer = {{0, 1, 2}, {10, 11, 12}}
Dizi değişmezleri hakkında daha fazla bilgi için bkz: Visual Basic'de Diziler.
Varsayılan veri türlerini ve değerleri
Başlatıcı ve veri türünü belirtme çeşitli birleşimleri sonuçları aşağıdaki tabloda açıklanmıştır bir Dim ifadesi.
Belirtilen veri türü? |
Belirtilen başlatıcı? |
Örnek |
Sonuç |
Hayır |
Hayır |
Dim qty |
Option Strict olan kapalı (varsayılan), değişken ayarlamak Nothing. Option Strict Açık olduğunda, bir derleme zamanı hatası oluşur. |
Hayır |
Evet |
Dim qty = 5 |
Seçeneği gerçekleştirip (varsayılan), değişken veri alır başlatıcı yazın olur.Bkz: Yerel Türü Arabirimi (Visual Basic Başvurusu) Option Infer Kapalı ve Option Strict kapalıysa, değişkenin veri türünü alır Object. Option Infer Kapalı ve Option Strict açık olduğunda, bir derleme zamanı hatası oluşur. |
Evet |
Hayır |
Dim qty As Integer |
Değişkenin veri türü için varsayılan değer için başlatıldı.Bu bölümün ilerleyen bölümlerindeki tabloda bkz. |
Evet |
Evet |
Dim qty As Integer = 5 |
Başlatıcı veri türü belirtilen veri türüne dönüştürülebilir değilse, bir derleme zamanı hatası oluşur. |
Veri türünü belirtir, ancak bir başlatıcı belirtmeyen Visual Basic değişkenini kendi veri türünün varsayılan değerine ayarlar.Aşağıdaki tabloda, varsayılan başlatma değerlerini gösterir.
Veri türü |
Varsayılan değer |
Tüm sayısal türler (dahil olmak üzere Byte ve SByte) |
0 |
Char |
İkili 0 |
Tüm başvuru türleri (dahil olmak üzere Object, Stringve tüm diziler) |
Nothing |
Boolean |
False |
Date |
12: 00 am 1 yılın 1 Ocak'ın (01/01/0001 12: 00: 00 am) |
Bir yapının her öğe ayrı bir değişken gibi başlatılır.Dizinin uzunluğunu bildirir, ancak kendi öğeleri başlatmak değil, her öğeyi ayrı bir değişken gibi başlatılır.
Statik yerel değişken ömrü
A Static yerel değişkeni, içinde bildirildiði yordamı daha uzun bir yaşam süresi vardır.Yordam burada bildirilmiş olup değişkenin yaşam sınırları bağlıdır Shared.
Yordam bildirimi |
Değişkeni başlatılamadı |
Varolan değişkeni durdurur. |
Bir modülde |
İlk kez yordamı çağrılır. |
Programın yürütülmesine durduğunda |
Bir sınıf veya yapıda yordam kullanılır.Shared |
İlk kez yordamı belirli bir kopya veya sınıf veya yapı kendisi verilir |
Programın yürütülmesine durduğunda |
Bir sınıf veya yapıda yordam değil.Shared |
İlk kez yordamı üzerinde belirli bir kopya denir. |
Çöp toplama (gc) örneği serbest bırakıldığında |
Öznitelikler ve değiştiriciler
Öznitelikler yalnızca üye değişkenleri değil, yerel değişkenler uygulayabilirsiniz.Bir öznitelik yerel değişkenleri gibi geçici depolama için anlamlı değildir derlemesinin meta bilgileri katkıda bulunmaktadır.
Modül düzeyinde kullanamazsınız Static değiştiricisi üye değişkenleri bildirmek için.Yordam düzeyinde kullanamazsınız Shared, Shadows, ReadOnly, WithEvents, veya herhangi bir erişim değiştiricileri yerel değişkenleri bildirmek için.
Hangi kod sağlayarak değişkene erişebileceğini belirtebilirsiniz bir accessmodifier.Özel erişim için üye değişkenleri (dışında herhangi bir yordam) varsayılan sınıf ve modül ve yapısını üye değişkenleri varsayılan genel erişim için.Erişim değiştiricileri ile kullanıcıların erişim düzeylerini ayarlayabilirsiniz.(Yordam) içindeki yerel değişkenler erişim değiştiricileri kullanamazsınız.
Belirttiğiniz WithEvents yalnızca üye değişkenleri, yordam içindeki yerel değişkenler üzerinde değil.Belirtirseniz WithEvents, belirli bir sınıf türü, değişken veri türü olmalıdır Object.Bir dizi ile bildiremezsiniz WithEvents.Olaylar hakkında daha fazla bilgi için bkz: Olaylar (Visual Basic).
[!NOT]
Kod sınıf dışında yapısı veya modül üye değişkenin adını, sınıf, yapı veya modül adıyla nitelemeniz gerekir.Kodu dışındaki herhangi bir yerel değişkenler, yordam veya blok içinde yordam veya blok başvuramaz.
Yönetilen kaynaklar serbest bırakma
.net Framework Atık toplayıcı yönetilen kaynaklar herhangi bir ekstra kodlama yapmanız olmadan ortadan kaldırdırır.Ancak, yönetilen bir kaynağın çöp toplayıcısı için beklemek yerine elden zorlayabilirsiniz.
Bir sınıf üzerine özellikle değerli ve az bulunur bir kaynak (örneğin, bir veritabanı bağlantısı veya dosya tanıtıcısı) tutuyorsa, artık kullanımda olmayan bir sınıf örneğinin temizlemek için bir sonraki çöp toplama kadar beklemeniz istemeyebilirsiniz.Bir sınıf uygulayabilir IDisposable önce bir atık toplama kaynakları serbest bırakmak için bir yol sağlamak için arabirim.Arabirimi uygulayan bir sınıf ortaya çıkaran bir Dispose hemen serbest bırakılması için değerli kaynaklar zorlamak için çağrılacak yöntemi.
Using Deyimi kaynak alınıyor, deyimleri kümesini yürütme ve ardından kaynak satarak işlemini otomatikleştirir.Ancak, kaynak uygulamalıdır IDisposable arabirim.Daha fazla bilgi için bkz. Using Deyimi (Visual Basic).
Örnek
Aşağıdaki örnek, kullanarak değişkenleri bildirir Dim ifadesi ile çeşitli seçenekler.
' Declare and initialize a Long variable.
Dim startingAmount As Long = 500
' Declare a variable that refers to a Button object,
' create a Button object, and assign the Button object
' to the variable.
Dim switchButton As New System.Windows.Forms.Button
' Declare a local variable that always retains its value,
' even after its procedure returns to the calling code.
Static totalSales As Double
' Declare a variable that refers to an array.
Dim highTemperature(31) As Integer
' Declare and initialize an array variable that
' holds four Boolean check values.
Dim checkValues() As Boolean = {False, False, True, False}
Aşağıdaki örnek, asal sayı 1 ile 30 arasında listeler.Yerel değişken kapsamı kod açıklamaları açıklanmıştır.
Public Sub ListPrimes()
' The sb variable can be accessed only
' within the ListPrimes procedure.
Dim sb As New System.Text.StringBuilder()
' The number variable can be accessed only
' within the For...Next block. A different
' variable with the same name could be declared
' outside of the For...Next block.
For number As Integer = 1 To 30
If CheckIfPrime(number) = True Then
sb.Append(number.ToString & " ")
End If
Next
Debug.WriteLine(sb.ToString)
' Output: 2 3 5 7 11 13 17 19 23 29
End Sub
Private Function CheckIfPrime(ByVal number As Integer) As Boolean
If number < 2 Then
Return False
Else
' The root and highCheck variables can be accessed
' only within the Else block. Different variables
' with the same names could be declared outside of
' the Else block.
Dim root As Double = Math.Sqrt(number)
Dim highCheck As Integer = Convert.ToInt32(Math.Truncate(root))
' The div variable can be accessed only within
' the For...Next block.
For div As Integer = 2 To highCheck
If number Mod div = 0 Then
Return False
End If
Next
Return True
End If
End Function
Aşağıdaki örnekte, speedValue değişkenini sınıf düzeyinde bildirilir.Private Anahtar değişkeni bildirmek için kullanılır.Değişken herhangi bir yordam tarafından erişilen Car sınıf.
' Create a new instance of a Car.
Dim theCar As New Car()
theCar.Accelerate(30)
theCar.Accelerate(20)
theCar.Accelerate(-5)
Debug.WriteLine(theCar.Speed.ToString)
' Output: 45
Public Class Car
' The speedValue variable can be accessed by
' any procedure in the Car class.
Private speedValue As Integer = 0
Public ReadOnly Property Speed() As Integer
Get
Return speedValue
End Get
End Property
Public Sub Accelerate(ByVal speedIncrease As Integer)
speedValue += speedIncrease
End Sub
End Class
Ayrıca bkz.
Görevler
Nasıl yapılır: Nesne Başlatıcı Kullanarak Bir Nesne Bildirme (Visual Basic)
Başvuru
Option Explicit Deyimi (Visual Basic)
Derleme Sayfası, Proje Tasarımcısı (Visual Basic)
Kavramlar
Visual Basic'de Değişken Bildirimi
Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler (Visual Basic)
Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler (Visual Basic)
Yerel Türü Arabirimi (Visual Basic Başvurusu)