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.Count
나Global.StaticMethod()
와 같이 클래스에서 직접 호출가능출력 결과
Global.Count : 0
Global.Count : 4
StaticMethod()
참조
뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어
'아카이빙 > C#' 카테고리의 다른 글
[C#] this() 생성자 (0) | 2018.06.18 |
---|---|
[C#] 얕은 복사와 깊은 복사 (0) | 2018.06.18 |
[C#] 유니티에서 foreach 성능은 개선되었을까 (1) | 2017.05.06 |
[C#] FieldInfo와 PropertyInfo (0) | 2017.05.06 |
[C#] Activator.CreateInstance와 new 차이 (4) | 2017.04.15 |