수색…


소개

부분 클래스는 클래스를 여러 부분과 여러 소스 파일로 분할하는 옵션을 제공합니다. 컴파일하는 동안 모든 파트가 하나의 단일 클래스로 결합됩니다. 모든 파트에는 partial 키워드가 있어야하며 동일한 액세스 가능성이 있어야합니다. 모든 파트는 컴파일 타임에 포함되도록 동일한 어셈블리에 있어야합니다.

통사론

  • public partial class MyPartialClass {}

비고

  • 부분 클래스는 확장되는 클래스와 동일한 어셈블리 및 네임 스페이스 내에 정의되어야합니다.

  • 클래스의 모든 부분은 partial 키워드를 사용해야합니다.

  • 클래스의 모든 부분은 동일한 액세스 가능성을 가져야합니다. public / protected / private 등.

  • 어떤 부분이 abstract 키워드를 사용하면 결합 된 유형은 추상으로 간주됩니다.

  • 어떤 파트가 sealed 키워드를 사용하면 조합 된 타입은 봉인 된 것으로 간주됩니다.

  • 어떤 부분이 기본 유형을 사용하면 결합 유형은 해당 유형을 상속합니다.

  • 결합 된 유형은 모든 부분 클래스에 정의 된 모든 인터페이스를 상속합니다.

부분 수업

부분 클래스는 클래스 선언을 (보통 별도의 파일로) 분리하는 기능을 제공합니다. 부분 클래스로 해결할 수있는 일반적인 문제는 사용자가 코드를 다시 생성하면 변경 사항을 덮어 쓰지 않아도 자동 생성 코드를 수정할 수 있다는 것입니다. 또한 여러 개발자가 동일한 클래스 또는 메소드에서 작업 할 수 있습니다.

using System;

namespace PartialClassAndMethods
{
    public partial class PartialClass
    {
        public void ExampleMethod() {
            Console.WriteLine("Method call from the first declaration.");
        }
    }

    public partial class PartialClass
    {
        public void AnotherExampleMethod()
        {
            Console.WriteLine("Method call from the second declaration.");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            PartialClass partial = new PartialClass();
            partial.ExampleMethod(); // outputs "Method call from the first declaration."
            partial.AnotherExampleMethod(); // outputs "Method call from the second declaration."
        }
    }
}

부분 방법

부분 메소드는 하나의 부분 클래스 선언 (공통 시나리오 - 자동 생성 클래스 정의)과 다른 부분 클래스 선언의 구현으로 구성됩니다.

using System;

namespace PartialClassAndMethods
{
    public partial class PartialClass // Auto-generated
    {
        partial void PartialMethod();
    }

    public partial class PartialClass // Human-written
    {
        public void PartialMethod()
        {
            Console.WriteLine("Partial method called.");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            PartialClass partial = new PartialClass();
            partial.PartialMethod(); // outputs "Partial method called."
        }
    }
}

기본 클래스에서 상속 한 부분 클래스

기본 클래스에서 상속하는 경우 하나의 부분 클래스 만 기본 클래스를 지정해야합니다.

// PartialClass1.cs
public partial class PartialClass : BaseClass {}

// PartialClass2.cs
public partial class PartialClass {}

두 개 이상의 부분 클래스에서 동일한 기본 클래스를 지정할 수 있습니다 . 일부 IDE 도구에서는 중복으로 플래그가 지정되지만 올바르게 컴파일됩니다.

// PartialClass1.cs
public partial class PartialClass : BaseClass {}

// PartialClass2.cs
public partial class PartialClass : BaseClass {} // base class here is redundant

여러 부분 클래스에 다른 기본 클래스를 지정할 수 없으므로 컴파일러 오류가 발생합니다.

// PartialClass1.cs
public partial class PartialClass : BaseClass {} // compiler error

// PartialClass2.cs
public partial class PartialClass : OtherBaseClass {} // compiler error


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow