次の方法で共有


参照できるインスタンス フィールドを宣言しないでください

更新 : 2007 年 11 月

TypeName

DoNotDeclareVisibleInstanceFields

CheckId

CA1051

カテゴリ

Microsoft.Design

互換性に影響する変更点

あり

原因

外部から参照できる型に、外部から参照できるインスタンス フィールドがあります。

規則の説明

フィールドの主な用途は、実装の詳細にする必要があります。フィールドは private または internal にし、プロパティによって公開するようにします。プロパティのアクセス方法はフィールドの場合と同様に簡単です。また、プロパティのアクセサでは、互換性に影響を与えずに型の機能が拡張されるため、コードで変更できます。プライベート フィールドまたは内部フィールドの値を返すだけのプロパティは、フィールドにアクセスする場合と同様に、簡単に実行できます。外部から参照できるフィールドを使用することで、プロパティの場合よりもパフォーマンスが向上することはありません。

外部から参照できるフィールドとは、public、protected、および protected internal (Visual Basic では Public、Protected、および Protected Friend) のアクセシビリティ レベルが指定されたフィールドです。

違反の修正方法

この規則違反を修正するには、フィールドを private または internal にするか、外部から参照できるプロパティを使用して公開します。

警告を抑制する状況

この規則による警告は抑制しないでください。外部から参照できるフィールドの利点のすべては、プロパティでも実現できます。さらに、パブリック フィールドはリンク確認要求で保護されません。「安全な型でフィールドを公開しないでください」を参照してください。

使用例

この規則に違反する型 (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 ; }
      }
   }
}

関連規則

安全な型でフィールドを公開しないでください

参照

概念

リンク確認要求