아카이빙/C#

[C#] static 필드와 메소드

셩님 2018. 6. 18. 02:50

[C#] static 필드와 메소드

  • C#에서 static 필드나 메소드는 인스턴스가 아닌, 클래스 자체에 소속된다.

  • 해당 클래스에서 단 하나만 존재해야하는 필드나 메소드일 경우 사용

  • 인스턴스가 아닌 클래스에서 직접 호출할 수 있다.


Global class

using System;

class Global
{
   public static int Count = 0;

   public static void StaticMethod()
  {
       Console.WriteLine("StaticMethod()");
  }
}


ClassA, ClassB

class ClassA
{
   public ClassA()
  {
       Global.Count++;
  }
}

class ClassB
{
   public ClassB()
  {
       Global.Count++;
  }
}


Main

class Program
{
   static void Main(string[] args)
  {
       Console.WriteLine("Global.Count : {0}", Global.Count);

       new ClassA();
       new ClassA();
       new ClassB();
       new ClassB();

       Console.WriteLine("Global.Count : {0}", Global.Count);

       Global.StaticMethod();
  }
}
  • Global.CountGlobal.StaticMethod()와 같이 클래스에서 직접 호출가능

  • 출력 결과

Global.Count : 0
Global.Count : 4
StaticMethod()


참조

  • 뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어