C# 프로그래밍 - 클래스 유형(sealed, partial, nested, 기타)
C# 프로그래밍 - 클래스 유형(sealed, partial, nested, 기타)
sealed 클래스
sealed 클래스는 더 이상 상속될 수 없는 클래스를 의미합니다. sealed 키워드를 사용하여 선언한 클래스는 다른 클래스가 상속할 수없습니다. sealed 클래스는 상속 계층의 끝을 나타내며 이 클래스를 기반으로 새로운 클래스를 만들 수 없습니다(더 이상 확장할 필요가 없는 최종 구현 클래스에 사용)
특정 클래스가 상속되지 않아야 함을 명시적으로 나타낼 수 있으며 중요한 클래스가 의도치 않게 상속되어 수정되는 것을 방지할 수 있습니다.
sealed 클래스 사용 예시
public sealed class SealedClass
{
}
아래 스크립트는 컴파일 오류를 발생시킵니다.
public class DerivedClass : SealedClass
{
}
partial 클래스
partial 키워드를 사용하여 하나의 클래스 정의를 여러 파일에 분할하여 작성할 수 있습니다. partial 클래스는 컴파일 시 하나의 클래스로 결합됩니다. 클래스가 크거나 복잡한 경우 또는 여러 사람이 협업하는 경우에 partial 클래스를 사용하여 코드의 가독성과 관리성을 높일 수 있습니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods
partial 클래스는 동일한 접근 제한자(public, internal)를 사용하여 선언되어야하며 동일한 네임스페이스 내에 있어야 합니다.
모든 파일이 동일한 어셈블리 내에 있어야 합니다.
partial 클래스 예시
// File1.cs
public partial class MyClass
{
public void Method1()
{
Console.WriteLine("Method1");
}
}
// File2.cs
public partial class MyClass
{
public void Method2()
{
Console.WriteLine("Method2");
}
}
class Program
{
static void Main()
{
MyClass myClass = new MyClass();
myClass.Method1(); // "Method1" 출력
myClass.Method2(); // "Method2" 출력
}
}
nested class
https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/nested-types