c#は、アクセス修飾子(パブリック
、、private
、保護された
)を使用して、クラスおよび構造体内のメンバーアクセシビリティを制御します。 これらの修飾子は、クラスメンバー(フィールド、プロパティ、メソッド)にアクセスできるスコープを定義します。 static
モディファイは、個々のインスタンスではなく、クラス自体に属するメンバーを定義する別のコントロール層を追加します。
アクセス修飾子:
public
:メンバーは public
として宣言されたメンバーは、どこからでもアクセスできます - 同じアセンブリまたはそれを参照する他のアセンブリ内。 これにより、最も広範なアクセシビリティが提供されます。
private
:メンバーは private
は、定義されているクラス内からのみアクセスできます。これにより、強力なカプセル化とデータが隠れています。
Protected
:メンバーは保護された
は、定義されているクラスおよび派生クラス(元のクラスから継承するクラス)内でもアクセスできます。これにより、制御された継承と機能の拡張が可能になります。
修正なし(デフォルト):アクセス修飾子が指定されていない場合、デフォルトのアクセスレベルは一般に内部
です。 これは、メンバーが定義されている同じアセンブリ(プロジェクト)内からのみアクセスできることを意味します。
静的修飾子:
static
修飾子は、メンバーがクラスの特定のインスタンスではなく、クラス自体に属していることを示します。 静的メンバーは、すべてのインスタンスで共有されます。 静的メンバーは、オブジェクトインスタンスではなく、クラス名を使用してアクセスされます。 静的クラスをインスタンス化することはできません。
実例:
public class ExampleClass
{
private int privateVar;
protected int protectedVar;
public int publicVar;
static int staticVar;
public void PublicMethod() { }
private void PrivateMethod() { }
protected void ProtectedMethod() { }
static void StaticMethod() { }
public static void Main(string[] args)
{
ExampleClass instance = new ExampleClass();
instance.publicVar = 10;
instance.PublicMethod();
// instance.privateVar = 20; // Error: private
// instance.PrivateMethod(); // Error: private
ExampleClass.staticVar = 5;
ExampleClass.StaticMethod();
}
}
この例では、 publicvar
and publicMethod
は自由にアクセスできます。 privatevar
and privatemethod
は exampleclass
内でのみアクセスできます。 protectedvar
and protectedMethod
は exampleclass
およびそこから継承する任意のクラス内でアクセスできます。 staticvar
and staticMethod
は、クラス名を介して直接アクセスされます。
実用的なアプリケーション:
アクセス修飾子は、カプセル化や抽象化などのオブジェクト指向の設計原則の基本です。 それらは、アプリケーションのさまざまな部分がどのように相互作用するかを制御し、コードの維持可能性を促進し、意図しない副作用を減らすのに役立ちます。 静的メンバーは、オブジェクトインスタンスを必要としないユーティリティ関数または定数に役立ちます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3