Aracılığıyla paylaş


Özellik Yordamları (Visual Basic)

Özellik yordamı, bir modül, sınıf veya yapıdaki özel özelliği işleyen bir dizi Visual Basic deyimidir. Özellik yordamları, özellik erişimcileri olarak da bilinir.

Visual Basic aşağıdaki özellik yordamlarını sağlar:

  • Yordam Get bir özelliğin değerini döndürür. İfade içindeki bir özelliğe eriştiğinizde tetiklenir.
  • Set Prosedür, nesne başvurusu da dahil olmak üzere bir özelliği bir değere ayarlar. Belirtilen özelliğe bir değer atadığınızda çağırılan bir yöntemdir.

Genellikle Get ve Set deyimlerini kullanarak özellik yordamlarını çiftler halinde tanımlarsınız, ancak özellik salt okunur (Get Deyimi) veya yalnızca yazılabilir (Set Deyimi) ise tek başına bir yordam tanımlayabilirsiniz.

Otomatik olarak uygulanan bir özellik kullanırken Get ve Set yordamını atlayabilirsiniz. Daha fazla bilgi için bkz . Otomatik olarak uygulanan özellikler.

Sınıflarda, yapılarda ve modüllerde özellikleri tanımlayabilirsiniz. Özellikler varsayılan olarak kullanılır Public . Bu, bunları uygulamanızda özelliğin kapsayıcıya erişebilecek herhangi bir yerden çağırabileceğiniz anlamına gelir.

Özelliklerin ve değişkenlerin karşılaştırması için bkz . Visual Basic'te Özellikler ve Değişkenler Arasındaki Farklar.

Bildirim söz dizimi

Property Deyimi ve End Property deyimi içine alınan bir kod bloğu tarafından özelliğin kendisi tanımlanır. Bu bloğun içinde, her özellik yordamı bir bildirim deyimi (Get veya Set) ve ilgili End bildirimi ile çevrelenmiş bir alt blok olarak görünür.

Bir özelliği ve yordamlarını bildirme söz dizimi aşağıdaki gibidir:

[Default] [Modifiers] Property PropertyName[(ParameterList)] [As DataType]
    [AccessLevel] Get
        ' Statements of the Get procedure.
        ' The following statement returns an expression as the property's value.
        Return Expression
    End Get
    [AccessLevel] Set[(ByVal NewValue As DataType)]
        ' Statements of the Set procedure.
        ' The following statement assigns newvalue as the property's value.
        LValue = NewValue
    End Set
End Property
' - or -
[Default] [Modifiers] Property PropertyName [(ParameterList)] [As DataType]

Modifiers, aşırı yükleme, geçersiz kılma, paylaşma ve gölgeleme ile ilgili erişim düzeyini ve bilgileri, ayrıca özelliğin salt okunur mu yoksa yazılabilir mi olduğunu belirtebilir. AccessLevel üzerindeki Get veya Set yordamı, özelliğin kendisi için belirtilen erişim düzeyinden daha kısıtlayıcı herhangi bir düzey olabilir. Daha fazla bilgi için bkz . Özellik Deyimi.

Veri Türü

Özelliğin veri türü ve asıl erişim düzeyi, Property deyiminde, özellik yordamlarında değil tanımlanır. Bir özelliğin yalnızca bir veri türü olabilir. Örneğin, bir Decimal değerini depolamak için bir özellik tanımlayıp Double değerini almak mümkün değildir.

Erişim Düzeyi

Ancak, bir özellik için bir asıl erişim düzeyi tanımlayabilir ve özellik yordamlarından birinde erişim düzeyini daha fazla kısıtlayabilirsiniz. Örneğin, bir Public özellik tanımlayabilir ve ardından bir Private Set yordam tanımlayabilirsiniz. Prosedür Get olarak kalır Public. Bir özelliğin yordamlarından yalnızca birinde erişim düzeyini değiştirebilir ve bunu yalnızca asıl erişim düzeyinden daha kısıtlayıcı yapabilirsiniz. Daha fazla bilgi için bkz. Nasıl Yapılır: Karma Erişim Düzeylerine Sahip Bir Özellik Bildirme.

Parametre bildirimi

Geçiş mekanizmasının ByValolması gerektiği dışında, her parametreyi Alt Yordamlar için olduğu gibi bildirirsiniz.

Parametre listesindeki her parametrenin söz dizimi aşağıdaki gibidir:

[Optional] ByVal [ParamArray] parametername As datatype

Parametre isteğe bağlıysa, bildiriminin bir parçası olarak varsayılan bir değer de sağlamanız gerekir. Varsayılan değeri belirtmek için söz dizimi aşağıdaki gibidir:

Optional ByVal parametername As datatype = defaultvalue

Özellik değeri

Bir Get yordamda, dönüş değeri özelliğin değeri olarak çağıran ifadeye sağlanır.

Bir Set prosedürde, yeni özellik değeri Set ifadesinin parametresine geçirilir. Bir parametreyi açıkça bildirirseniz, bunu özelliğiyle aynı veri türüyle bildirmeniz gerekir. Parametre bildirmezseniz, derleyici özelliğine atanacak yeni değeri temsil etmek için örtük parametresini Value kullanır.

Çağırma söz dizimi

Özelliğe atıfta bulunarak bir özellik yordamını örtük olarak çağırırsınız. Özelliğin adını, değişkenin adını kullandığınız gibi kullanırsınız, ancak isteğe bağlı olmayan tüm bağımsız değişkenler için değerler sağlamanız ve bağımsız değişken listesini parantez içine almanız gerekir. Hiçbir bağımsız değişken sağlanmazsa, isteğe bağlı olarak parantezleri atlayabilirsiniz.

Örtük bir çağrı için Set prosedürünün sentaksı aşağıdaki gibidir.

propertyname[(argumentlist)] = expression

Bir prosedüre örtük çağrının Get söz dizimi şu şekildedir:

lvalue = propertyname[(argumentlist)]
Do While (propertyname[(argumentlist)] > expression)

Bildirim ve çağrı illüstrasyonu

Aşağıdaki özellik, bir tam adı iki bileşen ad olarak, ilk isim ve soyisim şeklinde depolar. Çağıran kod fullName okuduğunda, Get yordam iki bileşen adı birleştirir ve tam adı döndürür. Çağıran kod yeni bir tam ad atadığında, Set prosedür bunu iki bileşen isme bölmeye çalışır. Eğer boşluk bulamazsa, hepsini birinci ad olarak depolar.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

Aşağıdaki örnek, fullName özelliğinin yordamlarını tipik olarak nasıl çağrılacağını gösterir.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Ayrıca bkz.