「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > アクセス修飾子(パブリック、プライベート、保護)と静的修飾子は、C#のメンバーアクセシビリティにどのように影響しますか?

アクセス修飾子(パブリック、プライベート、保護)と静的修飾子は、C#のメンバーアクセシビリティにどのように影響しますか?

2025-03-23に投稿されました
ブラウズ:524

How Do Access Modifiers (public, private, protected) and the Static Modifier Affect Member Accessibility in C#?

c#

のアクセスと静的修飾子を理解する

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