회신 :
하지만 난 거기에 더 예를 없고 정적 멤버가 이 참여하는 각 정적 호출은 서로 독립적 입니다 들었다. 그렇지? - 스리 쿠마 36 분 전
당신이 당신의 클래스의 '글로벌'인스턴스이며, 모든 정적 메서드는이 인스턴스에 의해 개최됩니다 생각할 수 있습니다.
예에서와 같이 ClassA myA = new ClassA()
을 호출하여 '사용자'인스턴스를 만들 수 있습니다. 한편 런타임에는 생성되지만 사용자에게는 보이지 않는 '전역'인스턴스가 있으며이 인스턴스에는 정적 메서드가 있습니다. 이 '글로벌'인스턴스 내에서 정적 메서드 동작이 인스턴스 메서드로 사용됩니다.
놀랍게도 C#에는 '글로벌'인스턴스가 런타임에 의해 초기화 될 때 호출되는 정적 생성자가 있습니다.
당신이 코드를 테스트 할 수 있습니다
class A
{
static A() {
Console.WriteLine("Creating the global instance of class A....");
}
public static void displayName()
{
Console.WriteLine("myName");
}
public static void displayAge()
{
Console.WriteLine("myAge");
}
}
class B
{
public void Foo()
{
A.displayName();
A.displayAge();
}
}
출력 될 것입니다 :
Creating the global instance of class A....
myName
myAge
을이 외에도에서, 정적 메서드는 인스턴스 메서드에서 아무것도 차이가 있습니다.
각 정적 메서드의 변수는 자체 범위를 가지며 한 메서드에서 다른 메서드로 독립적입니다.
정적 메소드의 사용은 멀티 스레딩과 절대 관련이 없습니다. – okutane
하지만 인스턴스가없고 정적 멤버 만 포함되어 있으므로 각 정적 호출이 서로 독립적이라고 들었습니다. 그렇지? 완성을 위해 –