ReadOnly (Visual Basic)

Bir değişkenin veya özelliğin okunup yazılamayacağını belirtir.

Açıklamalar

Kurallar

  • Bildirim bağlamı. ReadOnlyYalnızca modül düzeyinde kullanabilirsiniz. Diğer bir deyişle, bir öğe için bildirim bağlamı ReadOnly bir sınıf, yapı veya modül olmalıdır ve kaynak dosya, ad alanı veya yordam olamaz.

  • Birleşik değiştiriciler. ReadOnlyAynı bildirimde ile birlikte belirtemezsiniz Static .

  • Değer atama. Bir özelliği kullanan kod ReadOnly , değerini ayarlayamadı. Ancak, temel alınan depolamaya erişimi olan kod herhangi bir zamanda değeri atayabilir veya değiştirebilir.

    Bir ReadOnly değişkene yalnızca bildiriminde veya tanımlandığı bir sınıf veya yapının oluşturucusunda bir değer atayabilirsiniz.

Salt okunur değişken ne zaman kullanılır?

Sabit bir değer bildirmek ve atamak için const bildirimini kullanamadığınız durumlar vardır. Örneğin, Const deyimi atamak istediğiniz veri türünü kabul etmeyebilir veya bir sabit ifadeyle derleme zamanında değeri hesaplamayabilir. Derleme zamanında değeri bile bilmiyor olabilirsiniz. Bu durumlarda, ReadOnly sabit bir değeri tutmak için bir değişken kullanabilirsiniz.

Önemli

Değişkenin veri türü bir dizi veya sınıf örneği gibi bir başvuru türü ise, bu değişkenin kendisi olsa bile üyeleri değiştirilebilir ReadOnly . Aşağıdaki örnek bunu göstermektedir.

ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}
Sub ChangeArrayElement()
    characterArray(1) = "M"c
End Sub

Başlatıldığında, tarafından işaret edilen dizi characterArray() "x", "y" ve "z" barındırır. Değişken olduğundan characterArray ReadOnly , değeri başlatıldıktan sonra değiştiremezsiniz; diğer bir deyişle, buna yeni bir dizi atayamazsınız. Ancak, bir veya daha fazla dizi üyesinin değerlerini değiştirebilirsiniz. Yordama yapılan bir çağrıdan ChangeArrayElement sonra, işaret eden dizi characterArray() "x", "e" ve "z" barındırır.

Bunun, yordamın, çağıran bağımsız değişkenin kendisini değiştirmesini engelleyen bir yordam parametresi olarak bildirilmesinin benzer olduğuna, ancak onun üyelerini değiştirmesine izin verdiğinden emin olun.

Örnek

Aşağıdaki örnek, bir ReadOnly çalışanın işe alındığı tarih için bir özelliği tanımlar. Sınıfı, özellik değerini dahili olarak bir değişken olarak depolar Private ve yalnızca sınıfın içindeki kod bu değeri değiştirebilir. Ancak, özelliği olur Public ve sınıfa erişebilen tüm kodlar özelliği okuyabilir.

Class employee
    ' Only code inside class employee can change the value of hireDateValue.
    Private hireDateValue As Date
    ' Any code that can access class employee can read property dateHired.
    Public ReadOnly Property dateHired() As Date
        Get
            Return hireDateValue
        End Get
    End Property
End Class

ReadOnlyDeğiştirici şu bağlamlarda kullanılabilir:

Ayrıca bkz.