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:

Bkz: Visual Basic'de Erişim Düzeyleri

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 ]

Parça

Tanımlama

variablename

Gerekli.Değişken adı.Bkz: Bildirilen Öğe Adları (Visual Basic)

boundslist

İsteğe Bağlı.Bir dizi değişkeni, her boyut sınırları listesi.

New

İsteğe Bağlı.Sınıfın yeni bir örneğini oluşturur, Dim deyimini çalıştırır.

datatype

İsteğe Bağlı.Değişkenin veri türü.

With

İsteğe Bağlı.Nesne başlatıcı listesi sunar.

propertyname

İsteğe Bağlı.Sınıf içinde bir özellik adı örneği kurma.

propinitializer

Sonra gerekli propertyname =.Değerlendirilen ve özellik adı atanan ifade.

initializer

Eğer isteğe bağlı New belirtilmemiş.İfade değerlendirilir ve oluşturulduğunda değişkenine atanır.

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

Const Deyimi (Visual Basic)

ReDim Deyimi (Visual Basic)

Option Explicit Deyimi (Visual Basic)

Option Infer Deyimi

Option Strict Deyimi

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)

Anonim Türleri (Visual Basic)

Nesne Başlatıcıları: Adlandırılmış ve Anonim Türler (Visual Basic)

Yerel Türü Arabirimi (Visual Basic Başvurusu)

Diğer Kaynaklar

Visual Basic'de Diziler