0Pricing
C# Academy · レッスン

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 の目的

確認問題: C# 6 で 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. public/internal/protected/private(fileに関する注意点)
  2. 名前空間、usingディレクティブ、global using(注意点)
  3. partial型とファイル
← C# Academyに戻る