ca1051: بتعريف حقول مثيل مرئي

TypeName

DoNotDeclareVisibleInstanceFields

CheckId

ca1051

Category

Microsoft.تصميم

تعطيل تغيير

فصل

السبب

يحتوي على نوع مرئي خارجياً على حقل مثيل مرئي خارجياً.

وصف القاعدة

يجب أن يكون استخدم الأساسي حقل كـ تفصيل تطبيق. يجب أن تكون حقول privateأو internalويجب أن تكون عرضه باستخدام خصائص. الوصول إلى خاصية هو سهولة الوصول إلى حقل، وتغيير تعليمات برمجية في accessors للخاصية أثناء توسيع الميزات الخاصة بنوع دون تقديم أحدث التغييرات. خصائص فقط إرجاع القيمة حقل خاص أو داخلي يتم تحسين لأداء نظامك مع الوصول إلى حقل؛ وهناك لا الربح الأداء المقترنة باستخدام حقول مرئي خارجياً عبر خصائص.

يشير مرئي خارجياً إلى public، protected، و protected internal(Public,Protected, andProtected Friendفي Visual أساسى) الوصول مستويات.

كيف إلى الإصلاح انتهاكات

إلى إصلاح انتهاكا لهذه قاعدة، قم بإجراء الحقل privateأو internalويعرضه في استخدام الخصائص مرئي خارجياً.

عند إلى منع التحذيرات

لا بمنع تحذير من هذه قاعدة. لا توفر أية ميزات غير متوفرة على حقول مرئي خارجياً إلى الخصائص. بالإضافة إلى ذلك، حقول عامة لا يمكن أن تكون محمية بواسطة مستجيب الارتباط. انظر CA2112: Secured types should not expose fields

مثال

يظهر المثال التالي هو نوع ( BadPublicInstanceFields) التي تخالف هذه قاعدة. GoodPublicInstanceFieldsإظهار تعليمات برمجية الذي تم تصحيحه.

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 ; }
      }
   }
}

القواعد ذات الصلة

CA2112: Secured types should not expose fields

راجع أيضًا:

المبادئ

مستجيب الارتباط