현재 위치 - 중국 분류 정보 발표 플랫폼 - 비즈니스 서비스 정보 - C# 에서 static 과 const 의 차이점은 무엇입니까

C# 에서 static 과 const 의 차이점은 무엇입니까

Const 와 static readonly 는 개체 이름 대신 클래스 이름을 통해 액세스하는 것, 프로그램에서 읽기 전용 등을 잘 알고 있습니다. 대부분의 경우 혼용할 수 있습니다.

두 특성의 차이점은 const 의 값이 컴파일 중에 결정되므로 선언 시 상수 표현식을 통해서만 값을 지정할 수 있다는 것입니다. Static readonly 는 런타임에 값을 계산하므로 정적 생성자를 통해 값을 지정할 수도 있습니다.

이러한 본질적인 차이점을 이해하면 다음 문에서 static readonly 와 const 를 교환할 수 있는지 쉽게 알 수 있습니다.

1. static readonly myclass myins = new myclass ();

2. static readonly myclass myins = null;

3. static readonly a = b * 20;

Static readonly B = 10;;

4. static readonlyint [] constintarray = new int [] {1,2,3};

5. void SomeFunction()

{

Constinta = 10;

...

}

1: const 로 바꿀 수 없습니다. New 연산자는 생성자를 실행해야 하므로 컴파일 중에

를 결정할 수 없습니다

2: const 로 바꿀 수 있습니다. 또한 Reference 유형의 상수 (String 제외) 는 Null 일 수 있습니다.

3: const 로 바꿀 수 있습니다. 우리는 컴파일 중에 A 가 200 이라고 분명히 말할 수 있다.

4: const 로 바꿀 수 없습니다. 이치는 1 과 같다. 1, 2, 3 의 배열은 확실히 상수인 것 같다.

5: readonly 로 바꿀 수 없습니다. readonly 는 클래스의 field 를 수식하는 데만 사용할 수 있습니다. 로컬 변수나 property 와 같은 다른 클래스 멤버는 수식할 수 없습니다.