C#のパーシャルクラスのサンプルです。
目次
サンプル | パーシャルクラス |
パーシャルメソッド |
パーシャルクラス
- クラスを複数に分割できます。ファイルで分割することも可能です。
- 一般的に、自動生成されるコードとユーザーが作成するコードを分ける時に使用されます。
- クラスの前にpartialをつけます。
- 以下は、Microsoftのpartial (型) (C# リファレンス)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/partial-type
パーシャルクラスのサンプルです。
using System;
namespace Project1
{
partial class Class1
{
public void write1()
{
Console.WriteLine("test1");
}
}
partial class Class1
{
public void write2()
{
Console.WriteLine("test2");
}
}
class Test1
{
static void Main()
{
Class1 c1 = new Class1();
c1.write1(); //test1
c1.write2(); //test2
}
}
}
5行目は、パーシャルクラスです。クラスの前にpartialがついています。
12行目もパーシャルクラスで、5行目と同じクラス名をしています。Class1というクラスを分割しています。
23行目は、Class1クラスのインスタンスを生成しています。
24,25行目は、分割したクラスのメソッドをそれぞれ実行しています。
パーシャルメソッド
- メソッドの宣言とメソッドの処理内容を分けて記述できます。
→C++の書き方と同じです。C++では、メソッドの宣言と処理内容を分けて記述します。 - パーシャルクラス内でのみ使用できます。
- アクセスレベルは、privateです。
- 戻り値は、voidのみです。
- 以下は、Microsoftのpartial (メソッド) (C# リファレンス)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/partial-method
パーシャルメソッドのサンプルです。
using System;
namespace Project1
{
partial class Class1
{
partial void Write1();
}
partial class Class1
{
partial void Write1()
{
Console.WriteLine("test1");
}
static void Main()
{
Class1 c1 = new Class1();
c1.Write1(); //test1
}
}
}
7行目は、パーシャルメソッドで、メソッドの宣言をしています。
12行目もパーシャルメソッドで、7行目と同じメソッド名です。メソッドの処理内容を記述しています。
20行目で上記のメソッドを実行しています。
関連の記事