더북(TheBook)

부분 클래스를 사용하여 속성과 메서드 멤버를 나누어 관리하기

부분 클래스를 사용하면 클래스의 여러 멤버를 이름이 동일한 클래스에 나누어서 관리할 수 있어 편리합니다. 다음 내용을 입력한 후 실행해 보세요.

부분 클래스를 사용하여 속성과 메서드 멤버를 나누어서 관리: PartialClass.cs

using System;

namespace PartialClass
{
    //① 클래스에 partial 키워드를 붙여 부분 클래스로 설정하고 멤버 제공
    public partial class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }

    //② 부분 클래스의 다른 클래스/파일에 정의된 멤버 사용 가능
    public partial class Person
    {
        public void Print() => Console.WriteLine($"{Name} : {Age}");
    }

    class PartialClass
    {
        static void Main()
        {
            //ⓐ 부분 클래스인 Person 클래스의 인스턴스 생성
            Person person = new Person();

            //ⓑ 멤버가 함께 노출되는 것 확인
            person.Name = "C#";
            person.Age = 20;

            //ⓒ 출력
            person.Print();
        }
    }
}

실행 결과

C# : 20

PartialClass 네임스페이스에는 ①이나 ②처럼 이름이 같은 Person 클래스가 있습니다. 이름이 같은 클래스를 가질 수 있는 이유는 클래스 시그니처에 partial 키워드가 제공되기 때문입니다. ①의 Person 클래스에는 속성 멤버만 제공하고, ②의 Person 클래스에는 메서드 멤버만 제공했습니다.

프로그램을 실행하는 과정에서 ⓑ와 ⓒ처럼 서로 다른 곳에 정의된 멤버들을 모두 하나의 인스턴스 개체인 person으로 접근해서 사용할 수 있습니다.