C#의 partial 클래스

Muhammad Maisam Abbas 2024년2월16일
C#의 partial 클래스

이 자습서에서는 C#의 partial 클래스에 대해 설명합니다.

C#의 부분 클래스

partial키워드는 C#에서 부분 클래스를 지정합니다. 여러 책임이있는 클래스가있는 경우 각 클래스를 두 개의 구분자 클래스로 분할해야합니다. 이를 달성하는 한 가지 방법은 C#에서 별도의 종속성이있는 별도의 클래스를 만드는 것입니다. 이 문제를 처리하는 또 다른 쉬운 방법은 각 책임에 대해 하나의 부분 클래스를 만드는 것입니다. 부분 클래스를 사용하여 한 클래스의 정의를 여러 파일로 분할 할 수 있습니다.

이 튜토리얼에서는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.csPerson2.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클래스의 코드를 C#의partial키워드를 사용하여Person1.csPerson2.cs의 두 파일로 분할했습니다. 이 접근 방식에는 여러 가지 장점이 있습니다. 많은 책임이있는 큰 클래스를 각각 하나의 책임이있는 여러 개의 작은 부분 클래스로 분할 할 수 있습니다. 여러 개발자가 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