Section 42.1: 정적 (Static) 클래스

하나의 클래스를 "static" 키워드를 이용하여 선언하는 경우, 아래와 같은 3가지의 효과를 갖게 된다:

  1. static 클래스에 대한 인스턴스를 생성할 수 없다 (이로 인해 기본 생성자 역시 제거된다)
  2. 클래스내의 모든 속성값들과 메소드들 역시 static 으로 선언되어야 한다.
  3. static 클래스는 sealed클래스로써, 다른 클래스가 상속받을 수 없다.

역주: 인스턴스 생성자는 선언할 수 없지만 Static 생성자는 여전히 선언할 수 있습니다. (https://nochoco-lee.tistory.com/647)

public static class Foo { // 해당 클래스가 인스턴스화 될 수 없으므로 생성자가 없음에 유의한다 public static int Counter { get; set; } public static int GetCount() { return Counter; } } public class Program { static void Main(string[] args) { Foo.Counter++; Console.WriteLine(Foo.GetCount()); // 출력 결과는 1 이 된다 // var foo1 = new Foo(); // Foo 클래스는 생성자를 가질 수 없으므로 위 코드는 에러릏 발생시킬 것이다 } }
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts