C# の部分クラス

Muhammad Maisam Abbas 2024年2月16日
C# の部分クラス

このチュートリアルでは、C# の部分クラスについて説明します。

C# の部分クラス

partial キーワードは、C# で部分クラスを指定します。複数の責任を持つクラスがある場合は、それぞれが 1つの目的のみを持つ 2つのセパレータークラスに分割する必要があります。これを実現する 1つの方法は、C# で個別の依存関係を持つ個別のクラスを作成することです。この問題に対処するもう 1つの簡単な方法は、責任ごとに 1つの部分クラスを作成することです。1つのクラスの定義を、部分クラスを使用して複数のファイルに分割できます。

このチュートリアルでは、Person クラスの定義を複数のファイル Person1.csPerson2.cs に分割します。

  • Person.cs
using System;

namespace partial_class {
  public partial class Person {
    private int id;
    private string name;

    public Person(int id, string name) {
      this.id = id;
      this.name = name;
    }

    public void show() {
      Console.WriteLine("Person id = {0}", id);
      Console.WriteLine("Person Name = {0}", name);
    }
  }
}

C# の partial キーワードを使用して、このクラスの定義を複数のファイルに分割します。Person1.cs および Person2.cs クラスの内容を以下に示します。

  • person1.cs
namespace partial_class {
  public partial class Person {
    private int id;
    private string name;
    public Person(int id, string name) {
      this.id = id;
      this.name = name;
    }
  }
}
  • Person2.cs
using System;

namespace partial_class {
  public partial class Person {
    public void show() {
      Console.WriteLine("Person id = {0}", id);
      Console.WriteLine("Person Name = {0}", name);
    }
  }
}

main() 関数を含む Program.cs の内容を以下に示します。

  • program.cs
namespace partial_class {
  class Program {
    static void Main(string[] args) {
      Person p = new Person(1, "Maisam");
      p.show();
    }
  }
}

出力:

Person id = 1
Person Name = Maisam

上記のコード例では、Person.cs クラスのコードを 2つのファイル(Person1.csPerson2.cs)に分割し、C# で partial キーワードを使用しています。このアプローチには複数の利点があります。多くの責任を持つ大きなクラスを、それぞれ 1つの責任を持つ複数の小さな部分クラスに分割できます。複数の開発者が、2つの異なる別々のファイルで同じクラスで作業できます。フロントエンドの設計をバックエンドのビジネスロジックから分離できます。部分クラスは、コードを効率的に維持するためのメソッドも提供します。また、コードがよりクリーンになり、部分的なクラスで編成されます。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Class