2010-02-22 3 views
5

C++ 에서처럼 C#에서도 정적 변수가 동일하거나 유사한 기능을합니까?C++의 정적 변수와 C#의 차이점은 무엇입니까?

편집 :

당신이 많은 다른 상황에서 정적 변수를 사용할 수 있습니다 ++ C와

- 같은 : 1) 글로벌 변수, 2) 지역 기능 변수, 3) 반원들 - C#에서 유사한 용도가 유사한 행동겠습니까 C++의?

답변

5

정적은 C++에서 여러 가지 의미를 갖습니다.

C#의 정적 변수는 기본적으로 하나의 의미 만 갖습니다. 즉, 변수 범위가 유형입니다. C#에서 유형에 대한 정적은 유형 범위 변수를 나타내는 데 사용됩니다. 메소드의 정적은 유형 범위 메소드입니다. Static은 클래스에 사용되어 전체 클래스가 정적 메서드, 속성 및 필드로만 구성된다는 것을 나타낼 수도 있습니다.

함수 범위 내에있는 정적 변수 또는 비 클래스 범위의 정적 값에는 해당하지 않습니다.


편집 :

당신의 편집에 reponse에

, C#을 기본적으로 클래스 멤버 만 정적 사용합니다. 전역 변수와 지역 정적 함수 변수는 C#에서 지원되지 않습니다. 또한 위에서 언급했듯이 전체 클래스에 "정적"플래그를 지정할 수 있습니다. 기본적으로 컴파일러는 클래스에 비 정적 멤버가 없는지 확인합니다.

0

C#의 정적 변수는 C++의 정적 멤버 변수처럼 동작합니다. 그것은 C++의 '정적'키워드의 여러 의미를 벗어났습니다. 그 중 하나만 C#의 컨텍스트에 있습니다. 예 : C++에서 정적 클래스 수준의 엔티티를 선언 모두를 사용할 수 및 유형을 선언 : 당신은 정적 키워드

1

From MSDN: C#에서 (엄격 C 기능입니다) 정적을 가진 파일의 범위를 제한 할 수 없습니다 모듈에 고유합니다. C#에서 static은 클래스 수준 엔터티를 선언하는 데에만 사용됩니다.

관련 문제