다음을 통해 공유


const(C# 참조)

상수 필드 또는 지역 상수를 선언할 때는 const 키워드를 사용합니다. 상수 필드 및 지역 상수는 변수가 아니며 수정할 수 없습니다. 상수는 숫자, 부울 값, 문자열 또는 null 참조일 수 있습니다. 언제든지 변경될 수 있는 정보를 나타낼 때는 상수를 만들지 마세요. 예를 들어, 상수 필드를 사용하여 서비스의 가격, 제품 버전 번호 또는 회사의 브랜드 이름을 저장하지 마세요. 이러한 값은 시간이 지남에 따라 변경될 수 있으며, 컴파일러는 상수를 전파하므로 변경 내용을 보기 위해서는 라이브러리를 사용하여 컴파일된 다른 코드를 다시 컴파일해야 합니다. readonly 키워드도 참조하세요. 예를 들면 다음과 같습니다.

const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";

설명

상수 선언 형식은 선언에서 제공하는 멤버의 형식을 지정합니다. 지역 상수 또는 상수 필드의 이니셜라이저는 대상 형식으로 암시적으로 변환될 수 있는 상수 식이어야 합니다.

상수 식은 컴파일 타임에 완전히 계산될 수 있는 식입니다. 따라서 참조 형식의 상수에 대해 가능한 값은 string 및 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;

참고

readonly 키워드는 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() 
    {
        SampleClass mC = new SampleClass(11, 22);   
        Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
        Console.WriteLine("c1 = {0}, c2 = {1}", 
                          SampleClass.c1, 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 = {0}", c);
    }
}
// Output: My local constant = 707

C# 언어 사양

자세한 내용은 C# 언어 사양을 참조하세요. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.

참고 항목

참조

C# 키워드

한정자(C# 참조)

readonly(C# 참조)

개념

C# 프로그래밍 가이드

기타 리소스

C# 참조