ホームページ >バックエンド開発 >C++ >アクセス修飾子(パブリック、プライベート、保護)および静的修飾子は、C#のメンバーアクセシビリティにどのように影響しますか?

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

DDD
DDDオリジナル
2025-01-30 02:23:07381ブラウズ

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

c#

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

C#は、アクセス修飾子(publicprivateprotected)を使用して、クラスおよび構造体内のメンバーアクセシビリティを制御します。 これらの修飾子は、クラスメンバー(フィールド、プロパティ、メソッド)にアクセスできるスコープを定義します。 staticモディファイアは、個々のインスタンスではなく、クラス自体に属するメンバーを定義するコントロールの別のレイヤーを追加します。

アクセス修飾子:

  • publicメンバーは、と宣言されているメンバーは、どこからでもアクセスできます。 これにより、最も広範なアクセシビリティが提供されます public

  • と宣言されたメンバーは、定義されているクラス内からのみアクセスできます。これにより、強力なカプセル化とデータが隠れています private private

  • メンバーは、定義されているクラス内および派生クラス(元のクラスから継承するクラス)内でアクセス可能であると宣言されています。これにより、制御された継承と機能の拡張が可能になります

    protected修飾子なし(デフォルト):protectedアクセス修飾子が指定されていない場合、デフォルトのアクセスレベルは通常

    です。 これは、メンバーが定義されている同じアセンブリ(プロジェクト)内からのみアクセスできることを意味します。
  • 静的修飾子: internal

  • モディファイアは、メンバーがクラスの特定のインスタンスではなく、クラス自体に属していることを示します。 静的メンバーは、すべてのインスタンスで共有されます。 静的メンバーは、オブジェクトインスタンスではなく、クラス名を使用してアクセスされます。 静的クラスをインスタンス化することはできません。

実例:

この例では、staticおよび

は自由にアクセスできます。

およびは、内でのみアクセスできます。

および
<code class="language-csharp">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();
    }
}</code>
は、

およびそれから継承するクラス内でアクセス可能です。 publicVarおよびPublicMethodは、クラス名から直接アクセスされます。privateVar PrivateMethodExampleClass実用的なアプリケーション:protectedVarProtectedMethod ExampleClassアクセス修飾子は、カプセル化や抽象化などのオブジェクト指向の設計原則の基本です。 それらは、アプリケーションのさまざまな部分がどのように相互作用するかを制御し、コードの維持可能性を促進し、意図しない副作用を減らすのに役立ちます。 静的メンバーは、オブジェクトインスタンスを必要としないユーティリティ関数または定数に役立ちます。

以上がアクセス修飾子(パブリック、プライベート、保護)および静的修飾子は、C#のメンバーアクセシビリティにどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。