Aracılığıyla paylaş


CA1051: Görünür örnek alanlarını bildirme

TürAdı

DoNotDeclareVisibleInstanceFields

CheckId

CA1051

Kategori

Microsoft.Design

Bozan Değişiklik

Bozan

Sebep

Dışarıdan görünebilen bir tür dışarıdan görünebilen bir alana sahiptir.

Kural Tanımı

Bir alanın birincil kullanım alanı uygulama ayrıntısı olması gerekir.Alanların private veya internal olması gerekir ve özelliklerini kullanmaya maruz kalması gerekir.Bir özelliğe erişmek bir alana erişmek kadar kolaydır ve koddaki erişim özelliği genişletilmiş türün özelliklerinin değişimindeki gibi değişiklikleri bozmadan değiştirlebilmelidir.Bir alana erişim ile eşit gerçekleştirmek için iyileştirilmiş özel veya iç alanın değerini döndüren özellik; çok küçük performans kazanımı özelliklerin üstünde dışarıdan görünebilir alanlar kullanımıyla ile ilişkilidir.

public , protected ve protected internal (Public, Protected ve Visual Basic'teki Protected Friend ) erişilebilirlik düzeyleri dışarıdan görünebilir.

İhlallerin Düzeltilmesi

Bu kural ihlalini düzeltmek için alanları private veya internal yapın ve dışarıdan görünebilir özellik kullanmaya maruz bırakın.

Uyarılar Ne Zaman Bastırılmalı

Bu kuraldan bir uyarı gizlemeyin.Dışarıdan görünen alanlar özellikler kullanılmayan özellikler için herhangi bir yarar sağlamaz.Ayrıca, ortak alanlar Bağlantı Talepleri tarafından korunamazlar.Bkz: CA2112: Güvenli türler alanları açığa çıkarmamalıdır

Örnek

Aşağıdaki örnekte, kuralı ihlal eden bir tür (BadPublicInstanceFields) gösterilmektedir.GoodPublicInstanceFields düzeltilmiş kodu gösterir.

using System;

namespace DesignLibrary
{
   public class BadPublicInstanceFields
   {
      // Violates rule DoNotDeclareVisibleInstanceFields. 
      public int instanceData = 32;
   }

   public class GoodPublicInstanceFields
   {
      private int instanceData = 32;

      public int InstanceData
      {
         get { return instanceData; }
         set { instanceData = value ; }
      }
   }
}

İlgili Kurallar

CA2112: Güvenli türler alanları açığa çıkarmamalıdır

Ayrıca bkz.

Kavramlar

Bağlantı Talepleri