ASP.NETの部分クラス

Dec 13, 2016 am 11:50 AM

プロジェクト用のパブリック関数ライブラリを開発する場合、パブリック関数ライブラリに使用するコンテンツは豊富であるほど良いですが、一度にすべてを記述することはできず、少しずつ蓄積する必要があります。部分クラス: 新しく開発した部分クラス プログラムをサーバーまたは特定のディレクトリにアップロードすることで、新しいコードを元のプログラム コードにコピーして貼り付ける必要がなく、不要なトラブルが軽減されます。

部分型は、実行メカニズムに影響を与えない純粋な言語層のコンパイル プロセスです。実際、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 クラスをインスタンス化し、クラス内のメソッドを呼び出します。

りー


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

c#.netインタビューの質問と回答:専門知識を高める c#.netインタビューの質問と回答:専門知識を高める Apr 07, 2025 am 12:01 AM

C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

C#.NET:コアの概念とプログラミングの基礎を探る C#.NET:コアの概念とプログラミングの基礎を探る Apr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテスト テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテスト Apr 09, 2025 am 12:04 AM

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

c#.netの継続的な関連性:現在の使用法を見る c#.netの継続的な関連性:現在の使用法を見る Apr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

Webからデスクトップまで:C#.NETの汎用性 Webからデスクトップまで:C#.NETの汎用性 Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース 高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース Apr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

c#.netはあなたにぴったりですか?その適用性の評価 c#.netはあなたにぴったりですか?その適用性の評価 Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

汎用性のある.NET言語としてのC#:アプリケーションと例 汎用性のある.NET言語としてのC#:アプリケーションと例 Apr 26, 2025 am 12:26 AM

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

See all articles