Aracılığıyla paylaş


ReadOnly (Visual Basic)

Bir değişkenin veya özelliğin okunabileceğini ancak yazılamadığını belirtir.

Açıklamalar

Kurallar

  • Bildirim Bağlamı. Yalnızca modül düzeyinde kullanabilirsiniz ReadOnly . Bu, bir ReadOnly öğenin bildirim bağlamının bir sınıf, yapı veya modül olması gerektiği ve kaynak dosya, ad alanı veya yordam olamayacağı anlamına gelir.

  • Birleşik Değiştiriciler. Aynı bildirimde ile Static birlikte belirtemezsinizReadOnly.

  • Değer Atama. Bir özelliği kullanan kod ReadOnly değerini ayarlayamaz. Ancak, temel alınan depolamaya erişimi olan kod, istediğiniz zaman değeri atayabilir veya değiştirebilir.

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

ReadOnly Değişkeni Ne Zaman Kullanılır?

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

Önemli

Değişkenin veri türü dizi veya sınıf örneği gibi bir başvuru türüyse, değişkenin kendisi ReadOnlyolsa bile üyeleri değiştirilebilir. 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, dizi "x", "y" ve "z"yi barındırarak characterArray() işaret etti. değişkeni characterArray olduğundan ReadOnly, başlatıldıktan sonra değerini değiştiremezsiniz; başka bir ifadeyle, değişkenine yeni bir dizi atayamazsınız. Ancak, dizi üyelerinden birinin veya daha fazlasının değerlerini değiştirebilirsiniz. yordamına ChangeArrayElementyapılan çağrının ardından, dizinin işaret ettiği characterArray() "x", "M" ve "z" değerlerine sahiptir.

Bunun, yordamın çağıran bağımsız değişkenin kendisini değiştirmesini engelleyen ancak üyelerini değiştirmesine izin veren bir yordam parametresini ByVal olarak bildirmeye benzer olduğunu unutmayın.

Örnek

Aşağıdaki örnek, bir ReadOnly çalışanın işe alındığı tarih için bir özellik tanımlar. sınıfı özellik değerini dahili olarak bir Private değişken olarak depolar ve yalnızca sınıfın içindeki kod bu değeri değiştirebilir. Ancak özelliğidir Publicve sınıfına erişebilen tüm kodlar özelliğini 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

Değiştirici ReadOnly şu bağlamlarda kullanılabilir:

Ayrıca bkz.