산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C# partial 클래스와 partial 메서드 이해하기

C# partial 클래스와 partial 메서드 이해하기

이 글은 C# 개발자가 대규모 코드베이스 관리, 효과적 협업, 컴파일 최적화를 위해 partial 클래스와 partial 메서드 활용법을 설명합니다.

여러 개발자가 단일 거대 클래스 작업하거나, Visual Studio 같은 도구 생성 코드와 수작업 코드 병합 필요 시 C# partial 키워드가 깔끔한 해결책 제공.


Partial 클래스란?

Partial 클래스로 단일 클래스 정의를 두 개 이상 소스 파일에 분할 가능. 각 파일에 클래스 조각 포함, 컴파일 시 하나로 합쳐짐. partial 키워드 클래스 모든 부분에 필수.

예제 1 – 단순 클래스 분할

HeightWeightInfo 프로젝트에서 사람 키/몸무게 저장.

namespace HeightWeightInfo {
    public partial class Record {
        private int h;
        private int w;
        public Record(int h, int w) {
            this.h = h;
            this.w = w;
        }
    }
}

같은 Record 클래스 두 번째 파일에 계속:

namespace HeightWeightInfo {
    public partial class Record {
        public void PrintRecord() {
            Console.WriteLine("Height:" + h);
            Console.WriteLine("Weight:" + w);
        }
    }
}

클래스 사용하는 프로그램:

namespace HeightWeightInfo {
    class Program {
        static void Main(string[] args) {
            Record myRecord = new Record(10, 15);
            myRecord.PrintRecord();
            Console.ReadLine();
        }
    }
}

컴파일러가 두 Record 정의를 합쳐 생성자와 PrintRecord 메서드 모두 가진 단일 클래스 생성.

Partial 클래스 사용 시기

  1. 다수 개발자 참여 대형 프로젝트: 각 팀원 별도 파일 편집으로 충돌 방지.
  2. 자동 생성 코드: IDE 생성 파일 수동 수정 금지; partial 클래스로 생성 코드 건드리지 않고 커스텀 로직 추가.

기억할 핵심 사항


Partial 메서드란?

Partial 메서드는 partial 클래스 한 부분에 선언되고 다른 부분에서 선택적 구현 가능한 특수 메서드. 구현 생략 시 선언과 호출 모두 컴파일 타임에 제거되어 성능 향상 가능.

예제 2 – Partial 메서드 활용

file1.cs에서 Car 클래스 partial 메서드 선언과 일반 메서드들.

public partial class Car {
    partial void InitializeCar();
    public void BuildRim() { }
    public void BuildWheels() { }
}

file2.cs에서 같은 Car 클래스 InitializeCar 구현과 다른 메서드 추가.

public partial class Car {
    public void BuildEngine() { }
    partial void InitializeCar() {
        string str = "Car";
    }
}

Partial 메서드 선언은 두 부분: 한 파일에 시그니처, 동일/다른 파일에 선택적 구현.

Partial 메서드 규칙

C 언어

  1. C# 클래스와 객체: 견고한 OOP를 위한 기초 다지기
  2. C# 추상 클래스와 추상 메서드: 실전 가이드
  3. C# sealed 클래스와 메서드: 상속/오버라이딩 제한으로 코드 안전성·성능 높이기
  4. C++ 클래스와 객체: 객체지향 프로그래밍 실전 가이드
  5. C++ 프렌드 함수와 프렌드 클래스: 접근 제어 마스터하기
  6. Java 마스터하기: 객체, 클래스, 핵심 OOP 개념 이해
  7. C# 상속 마스터하기: 재사용 가능하고 유지보수하기 쉬운 코드 작성
  8. C# 다형성: 정적 바인딩 vs 동적 바인딩 완전 이해
  9. ASTM A729 Class A: 이중 노말라이징 및 템퍼링 강 - 주요 특성 및 표준
  10. ASTM A649 Class 2 노말라이징 및 템퍼링 강 - 사양 및 특성