2012-10-31 2 views
6

가능한 중복 :
What’s a static method in c#?정적 멤버와 비 정적 멤버의 차이점은 무엇입니까?

내가 너무 많은 포럼에서 연구 한 후, 정적 및 비 정적 (예) 회원의 실제 개념에 대한 내 마음을 취소하기 어렵게 발견 전 내 질문을 여기에 넣기로 결정했습니다.

정적 멤버와 정적 멤버가 아닌 것은 무엇입니까?

+2

SO가 포함 되었습니까? 나는 많은 비슷한 스레드를 생각한다. – nawfal

답변

9

static 메서드는 클래스에서 직접 액세스 할 수 있으며 non-static 메서드 (또는 호출하기를 좋아하는 인스턴스 메서드)는 인스턴스에서 액세스해야합니다. 정적 메소드의 경우 인스턴스화 할 필요가 없지만 인스턴스 메소드의 경우 인스턴스화해야합니다.

OOP에서 인스턴스 변수로 저장할 수없는 값은 static variables입니다. static methods은 클래스 내의 인스턴스 메서드 또는 변수에 액세스 할 수 없습니다. 물론 정적 메서드는 우리가 참조하려고하는 클래스의 인스턴스를 알 수 없으므로 의미가 있습니다.

클래스의 인스턴스가 얼마나 많은지 계산하고 싶다고 가정하십니까? 어떻게 하나의 인스턴스에 저장할 것입니까?

참고 :

  1. Static vs. Non-Static method in C#
  2. Static vs. non-static method
+0

정적 변수는 무엇을 의미 하는가? 정적 변수가 아니라 멤버 (필드, 속성 또는 메서드)가있을 수 있습니다. – UfukSURMEN

+1

이들은 변수의 또 다른 이름입니다. https://en.wikipedia.org/wiki/Static_variable을 참조하십시오. –

+0

좋은 지적 감사드립니다. – UfukSURMEN

4
  • static 멤버는 클래스하지만 비 정적 멤버 당 하나 인스턴스 당 하나입니다.

  • static 구성원은 캡슐화 된 클래스 이름으로 액세스되지만 비 정적 구성원은 개체 참조를 통해 액세스됩니다.

  • static 구성원은 개체를 인스턴스화하지 않고 비 정적 메서드를 사용할 수 없지만 비 정적 멤버는 static 멤버를 직접 사용할 수 있습니다.

  • static constructor은 정적 필드를 초기화하는 데 사용되지만 비 정적 필드의 경우 일반 인스턴스 생성자가 사용됩니다.

  • 성능 관련 사항은 here을 참조하십시오.

관련 문제