ホームページ  >  記事  >  バックエンド開発  >  C# クラス修飾子の洞察

C# クラス修飾子の洞察

巴扎黑
巴扎黑オリジナル
2016-12-20 09:42:421238ブラウズ

クラス修飾子: public、internal、partial、abstract、sealed、static

メンバー修飾子: public、protected、private、internal、sealed、abstract、virtual、override、readonly、const


Public: 最もオープンなすべてのオブジェクトこのアセンブリと他のアセンブリにアクセスできます


保護: 比較的オープンで、独自のメンバーとサブクラスのメンバーがアクセスできます


プライベート: 独自のメンバーのみがアクセスできます


内部: このアセンブリ内のメンバーはアクセスできます


部分: 部分クラス。クラスを複数の部分に分割して、異なるファイルに書き込むことができます。最終コンパイル時に 1 つのファイルにマージされ、さまざまな部分を異なるアセンブリに分散させることはできません


要約: クラスを変更する場合、これは、クラスが抽象クラスであり、このクラスのインスタンスを作成できないことを意味します。メソッドを変更する場合、そのメソッドはサブクラスによって実装される必要があることを意味します。サブクラスがメソッドを実装していない場合、そのサブクラスも抽象クラスであり、その抽象メソッドを含むクラスも抽象クラスでなければなりません。

Sealed: クラスを変更する場合、クラスを継承できないことを意味します。メソッドを変更する場合、メソッドをオーバーライドできないことを意味します。


静的: クラスを変更する場合、そのクラスは静的クラスであり、このクラスのオブジェクトをインスタンス化できないことを意味します。このクラスはインスタンス化できないため、このクラスにはオブジェクト メンバーを含めることはできません。つまり、このクラスのすべてのメンバーは、 static; クラス メンバーを変更する場合、そのメンバーはクラス メンバーであり、[class.メンバー名] を通じてのみアクセスできます



static がコンストラクターを変更する場合、コンストラクターにはパラメーターや修飾子を含めることはできません。コンストラクター関数はオブジェクトのメンバーを初期化できません。ただし、静的メンバーは初期化または呼び出しが可能です。いつ実行されるかは保証されませんが、クラス

が初めて使用される前に実行されることは保証できます。静的コンストラクターで初期化された静的メンバーが、最終的な初期化結果になります。例:

view plain

public static int test = 0;

static Person()

{

test = 3;

static void Main(string[] args)

{

Console.WriteLine(person.test);//実行結果は 3 です

}

注: クラスまたはメソッドが修飾子によって変更されていない場合、デフォルトは内部です:

C# はさまざまなメソッドを使用します。クラスのさまざまなプロパティを表現するための修飾子。 C# クラスには、保護レベルに応じて 5 つの異なる制限修飾子があります。

public は任意にアクセスできます。

protected はこのクラスとその継承されたサブクラスのみがアクセスできます。

internal はこのアセンブリからのみアクセスできます。アセンブリ)。アセンブリは、C# 言語で結合されたクラスの論理的および物理的な単位です。多くの場合、コンパイルされたファイル拡張子は「.DLL」または「.EXE」です。

protected external は唯一の組み合わせ制限修飾子です。この組み合わせ内のすべてのクラスと、これらのクラスの継承されたサブクラスのみがアクセスできます。

プライベートにはこのクラスのみがアクセスできます。
ネストされたクラスではない場合、名前空間またはコンパイル単位内のクラスには、public と external の 2 つの変更のみが含まれます。

新しい修飾子はネストされたクラスにのみ使用でき、親クラスから継承された同じ名前の型が非表示になることを示します。

abstract は抽象クラスを変更するために使用され、そのクラスが親クラスとしての継承にのみ使用でき、オブジェクトとしてインスタンス化できないことを示します。抽象クラスには抽象メンバーを含めることができますが、これは必須ではありません。 abstract は new と一緒に使用できません。



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