차례:
정의-상수 란 무엇입니까?
C #의 컨텍스트에서 상수는 컴파일시 값이 설정되고 런타임시 절대로 변경할 수없는 필드 유형 또는 로컬 변수입니다. 이름, 값 및 메모리 위치를 가짐으로써 변수와 유사합니다. 그러나 응용 프로그램에서 한 번만 초기화되는 특성으로 인해 변수와 다릅니다. 상수는 키워드 "const"를 사용하여 선언됩니다.
컴파일 타임에 변경되지 않는 값이 알려진 System.Object를 제외한 내장 유형의 변수는 상수로 선언 될 수 있습니다. 컴파일하는 동안 상수 값은 리터럴 값 대신 컴파일러에 의해 중간 언어 코드로 대체됩니다. 이로 인해 우발적 인 버그를 줄임으로써 애플리케이션의 무결성이 향상됩니다. 상수를 사용하면 일반 변수보다 성능이 향상됩니다. 소프트웨어를 재 컴파일하기 전에 한 곳에서 상수 값을 업데이트하기가 더 쉽기 때문에 코드 가독성이 향상되고 유지 관리가 향상됩니다.
Techopedia는 Constant를 설명합니다
상수는 다음과 같은 특성을 갖거나 다음 규칙을 준수해야합니다.
- 주어진 유형의 하나 이상의 상수를 단일 선언으로 선언 할 수 있습니다.
- 상수는 sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string, enum-type 또는 reference 유형과 같은 모든 유형이 될 수 있습니다.
- 상수의 유형은 최소한 상수 자체만큼 액세스 가능해야합니다.
- 종속성이 원형이 아닌 경우 상수는 다른 상수에 의존 할 수 있습니다.
- 메서드, 속성 또는 이벤트에는 상수를 사용할 수 없습니다.
- 상수는 클래스, 구조체 및 배열과 같은 사용자 정의 유형이 될 수 없습니다.
- 상수를 선언하는 동안 정적 수정자를 사용할 수 없습니다.
- 런타임시 이미 할당 된 상수 변수를 할당하면 컴파일 오류가 발생합니다.
- 주소는 런타임시 상수와 연관되지 않으므로 참조로 전달할 수 없으며 표현식에서 l- 값으로 표시 될 수 없습니다.
- 상수는 public, private, protected, internal 또는 protected internal과 같은 액세스 수정 자와 함께 사용할 수 있습니다.
- 클래스 수준에서 작성된 상수 선언은 어셈블리 메타 데이터에 저장됩니다.
상수를 사용하는 동안 모범 사례 중 일부는 다음과 같습니다.
- 선언하는 동안 상수를 초기화해야합니다.
- 상수는 특별한 값을 나타 내기 때문에 의미있는 이름과 함께 사용됩니다.
- 여러 비 적분 / 적분 상수를 정의하기 위해 단일 정적 클래스 (상수 멤버 변수 포함)를 사용하여 그룹화 할 수 있습니다.
- 상수 변수의 범위는 단일 어셈블리, 클래스 또는 메서드로 제한됩니다. 따라서 다른 어셈블리에 정의 된 상수 값을 참조하는 동안 종속 어셈블리를 컴파일하기 전에 수정을 위해 다시 컴파일해야합니다.
상수는 읽기 전용 변수와 다릅니다. 전자는 선언 시간 동안 초기화되어야하고 정적이며, 후자는 선언 중 또는 한 번 (생성자에서 생성자 유형에 따라 다른 값을 갖도록 초기화 될 수 있음) 초기화 될 수 있다는 점에서 다릅니다. ). 따라서 상수를 컴파일 타임 상수라고하며 읽기 전용 변수는 런타임 상수입니다.
이 정의는 C #의 맥락에서 작성되었습니다.