CA2104: Salt okunur kesilebilir başvuru türleri bildirmeyin

TypeName

DoNotDeclareReadOnlyMutableReferenceTypes

CheckId

CA2104

Kategori

Microsoft.Security

Değişiklik kesiliyor

Bölünemez

Neden

Dışarıdan görünen bir tür kesilebilir başvuru tipi bir dışarıdan görünen salt okunur alan içerir.

Kural Tanımı

Kesilebilir türü örneği verilerini değiştirilebilir bir türüdür.StringBuilder Kesilebilir başvuru türüne bir örnek bir sınıftır.Bu sınıfın bir örneğinin değerini değiştirebilirsiniz üyeleri içerir.Immutable başvuru türü örneği String sınıfı.Örneği oluşturulduktan sonra değerini hiçbir zaman değiştirebilirsiniz.

Salt okunur değiştirici (readonly (C# Başvurusu) C# ' ta ReadOnly (Visual Basic) , Visual Basic, ve const (C++) C++) başvuru türü alanı (işaretçi C++) farklı bir başvuru türü örneği tarafından değiştirilen alan engeller.Ancak, değiştirici, örnek veri alanının başvuru türü değiştirilmiş engellemez.

Salt okunur bir dizi alanlar bu kuraldan muaf ancak bunun yerine ihlal neden CA2105: Dizi alanları salt okunur olmamalıdır kural.

İhlalleri düzeltmek nasıl

Bu kuralı ihlal düzeltmek için salt okunur değiştirici kaldırın veya bir son dakika değişikliği kabul edilebilir ise, alan bir Immutable türüyle değiştirin.

Uyarıları ne zaman

Alan türü sabit ise bir uyarı bu kuraldan bastırmak güvenlidir.

Örnek

Bu kuralı ihlal neden olan bir alan bildiriminde aşağıdaki örnekte gösterilmektedir.

Imports System
Imports System.Text

Namespace SecurityLibrary

    Public Class MutableReferenceTypes

        Shared Protected ReadOnly SomeStringBuilder As StringBuilder

        Shared Sub New()
            SomeStringBuilder = New StringBuilder()
        End Sub 

    End Class 

End Namespace