CA2104: Salt okunur kesilebilir başvuru türleri bildirmeyin
TypeName |
DoNotDeclareReadOnlyMutableReferenceTypes |
CheckId |
CA2104 |
Kategori |
Microsoft.Security |
Değişiklik kesiliyor |
Bölünemez |
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.
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.
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.
Alan türü sabit ise bir uyarı bu kuraldan bastırmak güvenlidir.
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
using System;
using System.Text;
namespace SecurityLibrary
{
public class MutableReferenceTypes
{
static protected readonly StringBuilder SomeStringBuilder;
static MutableReferenceTypes()
{
SomeStringBuilder = new StringBuilder();
}
}
}
using namespace System;
using namespace System::Text;
namespace SecurityLibrary
{
public ref class MutableReferenceTypes
{
protected:
static StringBuilder^ const SomeStringBuilder =
gcnew StringBuilder();
private:
static MutableReferenceTypes()
{
}
};
}