Aracılığıyla paylaş


Property Deyimi

Bir özelliğin adını ve özelliğin değerini depolamak ve almak için kullanılan özellik yordamlarını bildirir.

Sözdizimi

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Parça

  • attributelist

    isteğe bağlı. Bu özellik veya GetSet yordam için geçerli olan özniteliklerin listesi. Bkz. Öznitelik Listesi.

  • Default

    isteğe bağlı. Bu özelliğin, üzerinde tanımlandığı sınıf veya yapı için varsayılan özellik olduğunu belirtir. Varsayılan özellikler parametreleri kabul etmelidir ve özellik adı belirtilmeden ayarlanıp alınabilir. özelliğini olarak Defaultbildirirseniz, özelliğinde veya özellik yordamlarından birinde kullanamazsınız Private . Örnekler ve ayrıntılı yönergeler için bkz . Nasıl yapılır: Visual Basic'te Varsayılan Özellik Bildirme ve Çağırma.

  • accessmodifier

    deyiminde Property ve deyimlerinden GetSet en fazla birinde isteğe bağlı. Aşağıdakilerden biri olabilir:

    Bkz. Visual Basic'te erişim düzeyleri.

  • propertymodifiers

    isteğe bağlı. Aşağıdakilerden biri olabilir:

  • Shared

    isteğe bağlı. Bkz. Paylaşılan.

  • Shadows

    isteğe bağlı. Bkz. Gölgeler.

  • ReadOnly

    isteğe bağlı. Bkz. Salt Okunur.

  • WriteOnly

    isteğe bağlı. Bkz. WriteOnly.

  • Iterator

    isteğe bağlı. Bkz. Yineleyici.

  • name

    Gerekli. Özelliğin adı. Bkz. Bildirilen Öğe Adları.

  • parameterlist

    isteğe bağlı. Bu özelliğin parametrelerini ve yordamın olası ek parametrelerini temsil eden yerel değişken adlarının Set listesi. Parametreli özellikler genellikle koleksiyon benzeri erişime izin veren dizin oluşturucular veya varsayılan özellikler oluşturmak için kullanılır. Bkz. Parametre Listesi ve Nasıl yapılır: Visual Basic'te Varsayılan Özellik Bildirme ve Çağırma.

  • returntype

    ise Option Strict gereklidir On. Bu özellik tarafından döndürülen değerin veri türü.

  • Implements

    isteğe bağlı. Bu özelliğin, her biri bu özelliğin içeren sınıfı veya yapısı tarafından uygulanan bir arabirimde tanımlanan bir veya daha fazla özellik uyguladığını gösterir. Bkz . Implements Deyimi.

  • implementslist

    Sağlanırsa Implements gereklidir. Uygulanan özelliklerin listesi.

    implementedproperty [ , implementedproperty ... ]

    Her implementedproperty birinin söz dizimi ve bölümleri vardır:

    interface.definedname

    Bölüm Açıklama
    interface Gerekli. Bu özelliğin içeren sınıfı veya yapısı tarafından uygulanan arabirimin adı.
    definedname Gerekli. özelliğinin içinde interfacetanımlandığı ad.
  • Get

    isteğe bağlı. özelliği işaretlenmişse ReadOnlygereklidir. Özelliğin değerini döndürmek için kullanılan bir Get özellik yordamı başlatır. deyimi Get otomatik olarak uygulanan özelliklerle kullanılmaz.

  • statements

    isteğe bağlı. veya Get yordamı içinde Set çalıştırılacak deyim bloğu.

  • End Get

    Özellik yordamını Get sonlandırır.

  • Set

    isteğe bağlı. özelliği işaretlenmişse WriteOnlygereklidir. Özelliğin değerini depolamak için kullanılan bir Set özellik yordamı başlatır. deyimi Set otomatik olarak uygulanan özelliklerle kullanılmaz.

  • End Set

    Özellik yordamını Set sonlandırır.

  • End Property

    Bu özelliğin tanımını sonlandırır.

Açıklamalar

deyimi bir Property özelliğin bildirimini tanıtır. Bir özelliğin bir Get yordamı (salt okunur), yordamı Set (yalnızca yazma) veya her ikisini de (okuma-yazma) olabilir. Otomatik olarak uygulanan bir özelliği kullanırken ve Get yordamını Set atlayabilirsiniz. Daha fazla bilgi için bkz . Otomatik olarak uygulanan özellikler.

Yalnızca sınıf düzeyinde kullanabilirsiniz Property . Bu, bir özelliğin bildirim bağlamının bir sınıf, yapı, modül veya arabirim olması gerektiği ve kaynak dosya, ad alanı, yordam veya blok olamayacağı anlamına gelir. Daha fazla bilgi için bkz . Bildirim Bağlamları ve Varsayılan Erişim Düzeyleri.

Varsayılan olarak, özellikler genel erişimi kullanır. Deyimindeki bir erişim değiştirici ile bir özelliğin Property erişim düzeyini ayarlayabilir ve isteğe bağlı olarak özellik yordamlarından birini daha kısıtlayıcı bir erişim düzeyine ayarlayabilirsiniz. Karma erişim düzeylerinin ayrıntılı örnekleri için bkz . Nasıl yapılır: Karma Erişim Düzeyleri ile Özellik Bildirme.

Visual Basic, özellik atamaları sırasında yordama Set bir parametre geçirir. için Setbir parametre sağlamazsanız, tümleşik geliştirme ortamı (IDE) adlı valueörtük bir parametre kullanır. Bu parametre, özelliğine atanacak değeri tutar. Bu değeri genellikle özel bir yerel değişkende depolar ve yordam çağrıldığında Get döndürürsiniz.

Kurallar

  • Karma Erişim Düzeyleri. Okuma-yazma özelliği tanımlıyorsanız, isteğe bağlı olarak veya Get yordamı için Set farklı bir erişim düzeyi belirtebilirsiniz, ancak her ikisini birden belirtemezsiniz. Bunu yaparsanız, yordam erişim düzeyi özelliğin erişim düzeyinden daha kısıtlayıcı olmalıdır. Örneğin, özelliği bildirilirse Friendyordamını SetPrivate bildirebilirsiniz, ancak bildiremezsinizPublic.

    Bir ReadOnly veya WriteOnly özelliği tanımlıyorsanız, tek özellik yordamı (Get veya Setsırasıyla) özelliğin tümünü temsil eder. Bu özellik için iki erişim düzeyi ayarlayacağından, böyle bir yordam için farklı bir erişim düzeyi bildiremezsiniz.

  • Dönüş Türü. deyimi, Property döndürdüğü değerin veri türünü bildirebilir. Herhangi bir veri türünü veya numaralandırma, yapı, sınıf veya arabirimin adını belirtebilirsiniz.

    belirtmezseniz returntypeözelliği döndürür Object.

  • Uygulama. Bu özellik anahtar sözcüğünü Implements kullanıyorsa, içeren sınıfın veya yapının veya Implements deyiminden Class hemen sonra bir Structure deyimi olmalıdır. deyiminde Implementsimplementslistbelirtilen her arabirimi içermelidir. Ancak, bir arabirimin tanımladığı adın Property (içinde definedname) bu özelliğin adıyla (içinde name) aynı olması gerekmez.

Davranış

  • Bir Özellik Yordamından geri dönülmektedir. Get veya Set yordamı çağıran koda geri döndüğünde yürütme, onu çağıran deyimini izleyen deyimiyle devam eder.

    Exit Property ve Return deyimleri bir özellik yordamından hemen çıkışa neden olur. Yordamın herhangi bir yerinde herhangi bir Exit Property sayıda ve Return deyimi görüntülenebilir ve ve Exit Property deyimlerini karıştırabilirsinizReturn.

  • Dönüş Değeri. Bir Get yordamdan değer döndürmek için, değeri özellik adına atayabilir veya bir Return deyime ekleyebilirsiniz. Aşağıdaki örnek, dönüş değerini özellik adına quoteForTheDay atar ve sonra döndürmek için deyimini Exit Property kullanır.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    için bir değer Exit Propertyname atamadan kullanırsanızGet, yordam özelliğin veri türü için varsayılan değeri döndürür.

    Deyimi Return aynı zamanda yordam dönüş değerini atar Get ve yordamdan çıkar. Aşağıdaki örnekte bu gösterilmektedir.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Örnek

Aşağıdaki örnek bir sınıfta bir özellik bildirir.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property Prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

Parametreli Özellikler

Aşağıdaki örnekte, bir koleksiyona dizi benzeri erişim sağlayan dizin oluşturucu olarak da adlandırılan parametreli bir özelliğin nasıl oluşturulacağı gösterilmektedir:

Class SampleCollection
    ' Define a local collection to store strings.
    Private items As New List(Of String)
    
    ' Define a parameterized property (indexer) for the collection.
    Default Public Property Item(ByVal index As Integer) As String
        Get
            ' Return the item at the specified index.
            If index >= 0 AndAlso index < items.Count Then
                Return items(index)
            Else
                Return Nothing
            End If
        End Get
        Set(ByVal value As String)
            ' Set the item at the specified index.
            If index >= 0 AndAlso index < items.Count Then
                items(index) = value
            ElseIf index = items.Count Then
                ' Allow adding new items at the end.
                items.Add(value)
            End If
        End Set
    End Property
    
    ' Add a Count property for convenience.
    Public ReadOnly Property Count As Integer
        Get
            Return items.Count
        End Get
    End Property
    
    ' Add method to add items.
    Public Sub Add(ByVal item As String)
        items.Add(item)
    End Sub
End Class

Otomatik uygulama, karma erişim düzeyleri ve doğrulama senaryoları gibi özellik kullanımına ilişkin kapsamlı örnekler için bkz. Özellik Yordamları.

Ayrıca bkz.

Özellik Türleri ve Özellikleri

Gelişmiş Özellik Senaryoları