Section 42.3: Static 키워드

static 키워드는 두가지 의미를 가진다:

  1. 각 객체 (object) 별로 다른 값을 가지는 것이 아닌, 클래스 전체에 대해 동일한 값을 가지게 된다.
  2. 정적 (static) 속성값과 메소드들은 별도의 인스턴스를 필요로 하지 않는다.
public class Foo { public Foo { Counter++; NonStaticCounter++; } public static int Counter { get; set; } public int NonStaticCounter { get; set; } } public class Program { static void Main(string[] args) { // 인스턴스를 생성한다. var foo1 = new Foo(); Console.WriteLine(foo1.NonStaticCounter); // 출력값은 "1" 이 될 것이다. // 다음 호출이 인스턴스에 대한 접근이 아닌 클래스 이름에 대해 이루어짐에 유의한다. Console.WriteLine(Foo.Counter); // 출력값은 "1" 역시 이 될 것이다. // 두번째 인스턴스를 생성한다. var foo2 = new Foo(); Console.WriteLine(foo2.NonStaticCounter); // 출력값은 "1" 이 될 것이다. Console.WriteLine(Foo.Counter); // 이제 출력값은 "2" 가 될 것이다. // 정적 속성값은 두 인스턴스 모두에서 증가되어 있으며, 이는 전체 클래스상에 지속적으로 유지될 것이다. } }
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

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

반응형

+ Recent posts