プロジェクト用のパブリック関数ライブラリを開発する場合、パブリック関数ライブラリに使用するコンテンツは豊富であるほど良いですが、一度にすべてを記述することはできず、少しずつ蓄積する必要があります。部分クラス: 新しく開発した部分クラス プログラムをサーバーまたは特定のディレクトリにアップロードすることで、新しいコードを元のプログラム コードにコピーして貼り付ける必要がなく、不要なトラブルが軽減されます。
部分型は、実行メカニズムに影響を与えない純粋な言語層のコンパイル プロセスです。実際、C# コンパイラーはコンパイル中に各部分のローカル型を完全なクラスにマージします。
1. 部分クラスはどのような状況で使用する必要がありますか?
(1) 型が非常に大きいため、1 つのファイルに実装しないでください。
(2) タイプ内のコードの一部は自動ツールによって生成されたコードであり、自分で作成したコードと混合しないでください。
(3) クラスを作成するには複数の人が協力する必要があります。
2. 部分型の修飾子
(1) 型のさまざまな部分のアクセス修飾子は、一貫性を維持する必要があります。
(2) 型の一部が abstract 修飾子を使用している場合、クラス全体が抽象クラスとみなされます。
(3) 型の一部で sealed 修飾子が使用されている場合、クラス全体が sealed クラスとみなされます。
(4) クラスの各部分で矛盾する修飾子を使用することはできません。たとえば、ある部分で abstract を使用し、別の部分で sealed を使用することはできません。
3. 部分型の基底クラスとインターフェース
(1) 型の各部分に指定される基底クラスは一貫していなければなりません。特定の部分では基本クラスを指定する必要はありませんが、指定する場合は同じである必要があります。
(2) Partial タイプのインターフェースには「累積」効果があります。
部分クラス Class2: Iinterface1, Iinterface2 {}
部分クラス Class2: Iinterface3 {}
部分クラス Class2: Iinterface2 {}
クラス Class2: Iinterface1, Iinterface2, Iinterface3 と同等 {}
4. 部分型 適用プロパティ
ローカル型のプロパティには「相加的」効果があります。
[Attribute1, Attribute2("Hello")]
部分クラス Class1{}
[Attribute3, Attribute2("Exit")]
部分クラス Class1{}
は
[Attribute1, Attribute2("Hello") と同等です" ), Attribute3, Attribute2("Exit")]
class Class1 {}
注: Attribute2 属性は、クラスで複数回使用できます。
5. 部分型の制限事項
1. 同じ型の一部となるすべての部分型定義は、partial で変更する必要があります。以下に示すように:
public Partial class A { }
public class A { } // エラー、partial もマークする必要があります
2. 部分修飾子は、キーワード class、struct、またはインターフェイス Position (partial) の直前にのみ使用できます。列挙型または他の型には使用できません);
3. 同じ型の一部となるすべての部分型定義は、同じアセンブリおよび同じモジュール (.exe または .dll ファイル) で定義する必要があります。部分定義は複数のモジュールにまたがることはできません。
4. クラス名とジェネリック型パラメーターはすべての部分型定義で一致する必要があります。ジェネリック型は部分的である場合があります。各部分宣言では、同じパラメータ名を同じ順序で使用する必要があります。
5. ローカル型はクラス、インターフェイス、構造体にのみ適用され、委任と列挙はサポートされません。
6. 型のすべての部分を同時にコンパイルする必要があります。
6. Partial を使用する場合は、次の状況に注意する必要があります
1. クラス、構造、またはインターフェイスの他の部分が名前空間内で定義できることを示すには、partial キーワードを使用します
2. すべてのパーツは部分的なキーワードを使用する必要があります
3. 各パーツは、パブリック、プライベートなどの同じアクセシビリティを持たなければなりません
4. いずれかのパーツが抽象として宣言されている場合、型全体が抽象とみなされます
5.いずれかの部分がabstractと宣言されている場合、ある部分がsealedと宣言されている場合、その型全体はsealedとみなされます
6. いずれかの部分が基本クラスを継承するように宣言されている場合、その型全体はクラスを継承します
7 各部分は異なるものを指定できます。基本インターフェイス、そして最後に、型はすべての部分宣言にリストされているすべてのインターフェイスを実装します
8. 部分定義で宣言されたクラス、構造体、またはインターフェイスのメンバーは、他のすべての部分で使用できます
9。入れ子になった型自体が部分的でない場合でも、入れ子になった型は部分的になることがあります。
7. 部分インスタンス
Example クラスを Partial Class として定義し、このクラスの 3 つのメソッド m1、m2、m3 を Example1 にそれぞれ定義します。 cs、例2。 cs、例3。 cs 3 つのクラス ファイル、次に PartialClass.aspx です。 cs で Example クラスをインスタンス化し、クラス内のメソッドを呼び出します。
りー