partial型とファイル
partialクラス/構造体で1つの型を複数のファイルに分割し、partialメソッドで生成コードにカスタムロジックを組み込みます。
「partial型とファイル」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。
部分型の概要
目標: 大きな型をきれいに分割します。
- partial class/struct: 同じ名前空間と名前を持ちます
- 通常は複数のファイルに分けて記述します
- partial メソッド: partial 型内の省略可能なフックです
partial class の分割
partial class は複数の部分に分けて宣言できます。コンパイラーはそれらを 1 つの型に結合します。
using System;
namespace Demo
{
// Part 1: data
public partial class Person
{
public string Name { get; private set; }
public Person(string name) { Name = name; }
}
// Part 2: behavior
public partial class Person
{
public string Greet() { return "Hi " + Name; }
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Person p = new Demo.Person("Ada");
Console.WriteLine(p.Greet());
}
}
partial メソッド
partial メソッドはコンパイル時のフックです。実装されていない場合、その呼び出しは削除されます。C# 6 では void で、private でなければなりません。
using System;
namespace Demo
{
public partial class Processor
{
// Partial method: implicitly private, must return void in C# 6
partial void OnProcessed(string item);
public void Run(string item)
{
// do work...
OnProcessed(item); // call hook (removed by compiler if not implemented)
}
}
public partial class Processor
{
// Implementation lives in another part (often another file)
partial void OnProcessed(string item)
{
Console.WriteLine("Processed: " + item);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Processor p = new Demo.Processor();
p.Run("report");
}
}
partial を使用する場面
使用例:
- デザイナーまたは生成されたコードを 1 つのファイルに置き、安全に編集するコードを別のファイルに置きます。
- 大きな型を機能ごとに分割します。たとえばデータと振る舞いに分けます。
- partial メソッドで省略可能なフックを追加します。
partial struct
partial を使用してstructも分割できます。コンパイル時には、結果として 1 つの struct 型になります。
using System;
namespace Demo
{
public partial struct Pair
{
public int A;
}
public partial struct Pair
{
public int B;
public int Sum() { return A + B; }
}
}
public class Program
{
public static void Main(string[] args)
{
Demo.Pair p = new Demo.Pair();
p.A = 2; p.B = 3;
Console.WriteLine("Sum = " + p.Sum());
}
}
partial のルールとヒント
ヒント:
- すべての部分で、同じ名前空間、名前、アクセス修飾子を使用する必要があります。
- 各ファイルの役割を明確にしてください(生成コードと手動記述コードなど)。
- C# 6 では partial メソッドは void かつ private です。小さく保ってください。
partial class の目的
まとめ
まとめ: 型を複数のファイルに分割するには partial を使用し、省略可能なフックを追加するには partial メソッドを使用します。各部分を同じ名前空間と名前に保ち、コンパイラーに結合させます。
よくある質問
「partial型とファイル」レッスンは無料ですか?
はい。「partial型とファイル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。
「partial型とファイル」で何を学びますか?
partialクラス/構造体で1つの型を複数のファイルに分割し、partialメソッドで生成コードにカスタムロジックを組み込みます。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C# Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「partial型とファイル」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC# Academyレッスンでコードを書いて実行できますか?
はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。