C# 部分クラスと部分メソッド
C# 部分クラスと部分メソッド
この記事では、C# で部分クラスと部分メソッドを実装する方法と理由について学習します。
クラス定義の分割が必要になる状況は数多くあります。たとえば、大規模なプロジェクトで作業している場合、複数の開発者やプログラマーが同じクラスで同時に作業する必要がある場合があります。この場合、Partial Class という機能を使用できます。 .
部分クラスの紹介
C# (または OOP) でプログラミングしているときに、クラスの定義を 2 つ以上のソース ファイルに分割できます。ソース ファイルにはクラス定義のセクションが含まれており、アプリケーションのコンパイル時にすべての部分が結合されます。クラス定義を分割するには、 partial
を使用する必要があります キーワード。
例 1:
HeightWeightInfo
という名前のプロジェクトがあります 身長と体重を示します。
File1.cs
という名前のファイルがあります Record という名前の部分クラス . 2 つの整数変数 h があります &w Record という名前のメソッド/コンストラクター h の値を割り当てています &w .
namespace HeightWeightInfo
{
class File1
{
}
public partial class Record
{
private int h;
private int w;
public Record(int h, int w)
{
this.h = h;
this.w = w;
}
}
}
同じ部分クラス Record を持つ File2.cs という名前の別のファイルを次に示します。 メソッド PrintRecord のみを持つ .このメソッドは h の値を表示します &w .
namespace HeightWeightInfo
{
class File2
{
}
public partial class Record
{
public void PrintRecord()
{
Console.WriteLine("Height:"+ h);
Console.WriteLine("Weight:"+ w);
}
}
}
ここに main が表示されます プロジェクトの方法:
namespace HeightWeightInfo
{
class Program
{
static void Main(string[] args)
{
Record myRecord = new Record(10, 15);
myRecord.PrintRecord();
Console.ReadLine();
}
}
}
ここに Record クラスのオブジェクトがあります myRecord として パラメータ値を 10 と 15 として h に渡します そしてw それぞれ File1.cs
で定義されたメソッドに .
メソッド PrintRecord オブジェクト myRecord によって呼び出されます File2.cs
で定義されている .
これは partial
キーワードは、さまざまなファイルで定義されたクラスのすべての属性を組み合わせて、単一のクラスとして機能させるのに役立ちます。
partial
の場所 クラスを使用できます:
部分授業について覚えておくべきこと
partial
キーワードは、クラスの他の部分を名前空間で定義できることを指定します。クラスを部分的にしようとしている場合は、partial キーワードを使用することが必須です。クラスのすべての部分は同じ名前空間にあり、最終的な型を形成するためにコンパイル時に利用できる必要があります。すべてのパーツに同じアクセス修飾子 (private、public など) が必要です。
- 一部が抽象宣言されている場合、型全体が抽象と見なされます。
- 一部が封印されていると宣言されている場合、型全体が封印されていると見なされます。
- いずれかの部分で基本型を宣言すると、型全体がそのクラスを継承します。
- 部分的な定義で宣言されたクラス メンバーは、他のすべての部分で使用できます。
- 部分クラスのすべての部分は、同じ名前空間にある必要があります。
**注: partial
修飾子はデリゲートまたは列挙宣言では使用できません
部分メソッドの紹介
部分クラスには部分メソッドが含まれる場合があります。クラスの一部には、メソッドのシグネチャが含まれています。オプションの実装は、同じ部分または別の部分で定義できます。実装が提供されていない場合、メソッドとすべての呼び出しはコンパイル時に削除されます。
例 2:
部分クラスとして例を挙げてみましょう Car
file1.cs
で定義 InitializeCar の 3 つのメソッドがあります ()、BuildRim () と BuildWheels ().これらのメソッドのうち、InitializeCar partial
と定義されています .
public partial class Car
{
partial void InitializeCar();
public void BuildRim() { }
public void BuildWheels() { }
}
file2.cs
という名前の別のファイルがあります これには 2 つのメソッド BuildEngine があります と InitializeCar .メソッド InitializeCar file1.cs
でも定義されている部分メソッドです .
public partial class Car
{
public void BuildEngine() { }
partial void InitializeCar()
{
string str = "Car";
}
}
部分メソッド宣言は 2 つの部分で構成されます:
<オール>file1.cs
のような定義 .file2.cs
のような実装 .それらは、部分クラスの別々の部分にある場合もあれば、同じ部分にある場合もあります。
部分メソッドについて覚えておくべきこと
partial
キーワード。- 戻り値の型
void
. - 暗黙的に
private
. - かつ
virtual
であってはなりません .
C言語