키워드를 const 사용하여 상수 필드 또는 로컬 상수 선언 상수 필드와 로컬은 변수가 아니며 수정할 수 없습니다. 상수는 숫자, 부울 값, 문자열 또는 null 참조일 수 있습니다. 시간에 따라 변경해야 하는 정보를 나타내는 상수는 만들지 마세요. 예를 들어 상수 필드를 사용하여 서비스 가격, 제품 버전 번호 또는 회사의 브랜드 이름을 저장하지 마세요. 이러한 값은 시간이 지남에 따라 변경될 수 있으며 컴파일러가 상수로 전파되므로 변경 내용을 보려면 라이브러리로 컴파일된 다른 코드를 다시 컴파일해야 합니다.
읽기 전용 키워드도 참조하세요. 예를 들어:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
사용된 모든 식이 상수 문자열인 경우 보간된 문자열은 상수일 수 있습니다. 이 기능은 상수 문자열을 빌드하는 코드를 향상시킬 수 있습니다.
const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";
C# 언어 참조는 가장 최근에 릴리스된 C# 언어 버전을 문서화합니다. 또한 예정된 언어 릴리스의 공개 미리 보기 기능에 대한 초기 설명서도 포함되어 있습니다.
설명서는 언어의 마지막 세 버전 또는 현재 공개 미리 보기에서 처음 도입된 기능을 식별합니다.
팁 (조언)
C#에서 기능이 처음 도입된 시기를 찾으려면 C# 언어 버전 기록에 대한 문서를 참조하세요.
상수 선언의 형식은 선언에서 도입하는 멤버의 형식을 지정합니다. 로컬 상수 또는 상수 필드의 이니셜라이저는 컴파일러가 암시적으로 대상 형식으로 변환할 수 있는 상수 식이어야 합니다.
상수 식은 컴파일러가 컴파일 시간에 완전히 평가할 수 있는 식입니다. 따라서 참조 형식의 상수에 사용할 수 있는 값은 문자열과 null 참조뿐입니다.
다음과 같은 단일 상수 선언에서 여러 상수 선언을 수행할 수 있습니다.
public const double X = 1.0, Y = 2.0, Z = 3.0;
static 수정자는 상수 선언에서 허용되지 않습니다.
상수는 다음과 같이 상수 식에 포함될 수 있습니다.
public const int C1 = 5;
public const int C2 = C1 + 100;
메모
읽기 전용 키워드는 const 키워드와 다릅니다. 필드 선언에서 const 만 필드를 초기화할 수 있습니다. 선언 또는 생성자에서 필드를 초기화 readonly 할 수 있습니다. 따라서 readonly 필드는 사용된 생성자에 따라 다른 값을 가질 수 있습니다. 또한 const 필드는 컴파일 시간 상수이지만 readonly 필드는 다음 줄과 같이 런타임 상수에 사용할 수 public static readonly uint l1 = (uint)DateTime.Now.Ticks;
예제
public class ConstTest
{
class SampleClass
{
public int x;
public int y;
public const int C1 = 5;
public const int C2 = C1 + 5;
public SampleClass(int p1, int p2)
{
x = p1;
y = p2;
}
}
static void Main()
{
var mC = new SampleClass(11, 22);
Console.WriteLine($"x = {mC.x}, y = {mC.y}");
Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
}
}
/* Output
x = 11, y = 22
C1 = 5, C2 = 10
*/
다음 예제에서는 로컬 상수를 선언하는 방법을 보여줍니다.
public class SealedTest
{
static void Main()
{
const int C = 707;
Console.WriteLine($"My local constant = {C}");
}
}
// Output: My local constant = 707
C# 언어 사양
자세한 내용은 C# 언어 사양다음 섹션을 참조하세요.
참고하세요
.NET