これら 4 つのカテゴリの違いについて話すときは、アセンブリという概念を説明する必要があります。アセンブリ (Assembly) は、単純にコンパイル後に生成される .dll または .exe ファイルとして理解でき、名前空間と比較すると、クラス ライブラリの論理的な構成形式であり、プログラム クラス ライブラリの物理的な構成形式と呼ぶことができます。 「アセンブリ」について説明します。独自のビルド番号と、それに含まれるすべてのデータおよびオブジェクト タイプの詳細を説明するメタデータが含まれます。一般に、アセンブリには 1 つ以上の名前空間を含めることができます。
パブリック: 他のクラスのメソッドが表示されます。
プライベート: このクラスで定義されたメンバーには、このクラスのメソッドのみがアクセスできます。
保護: このクラスのメンバーには、このクラスのメソッドのみがアクセスできます。クラスのメソッドにのみアクセスできます。
internal: このクラスのメンバーは、このクラスが配置されているアセンブリ内のクラスのメソッドからのみアクセスできます。
protected external: protected と external の結合です。 。
そのため、アクセス レベルは高いものから低いものまで Public>protected external>internal>Protected>Private にする必要があります
クラスのデフォルトの修飾子は内部、クラス内のメンバー変数のデフォルトの修飾子はプライベート、名前空間は修飾子はパブリックであるとみなされます。 msdn で言及されているもう 1 つの点は、継承クラスのアクセス レベルが継承クラスのアクセス レベルを超えることはできないということです。たとえば、内部クラスはプライベート クラスを継承できません。
using System; /****************************** * Chapter:C#难点逐个击破(五) * Author:王洪剑 * Date:2010-1-15 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:访问修改符 * ***************************/ namespace TestMain { public class A { public void Alert() { } } internal class B:A { internal new void Alert() { Console.WriteLine("you"); } } class Program { static void Main() { B b=new B(); b.Alert(); } } }
上記は C# の難易度を 1 つずつ説明したものです (5): クラス アクセス タイプ その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) をご覧ください。