English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 상수

상수는 고정 값을 가지며, 프로그램 실행 중 변경되지 않습니다. 상수는 어떤 기본 데이터 타입이든 될 수 있습니다. 예를 들어, 정수 상수, 실수 상수, 문자 상수 또는 문자열 상수, 그리고 열거 상수입니다.

상수는 일반 변수와 같이 사용될 수 있지만, 정의 후 값을 변경할 수 없습니다.

정수 상수

정수 상수는 십진수, 8진수, 16진수의 상수일 수 있습니다. 접미사는 기본 진수를 지정합니다: 0x나 0X는 16진수, 0은 8진수, 접미사가 없으면 십진수를 나타냅니다.

정수 상수는 접미사를 가질 수 있으며, U와 L의 조합으로 구성될 수 있습니다. U와 L은 unsigned와 long을 각각 나타냅니다. 접미사는 대문자나 소문자로组合할 수 있으며, 여러 접미사는 어떤 순서로든 조합할 수 있습니다.

여기에는 몇 가지 정수 상수의 예가 있습니다:

212         /* 합법 */
215u        /* 합법 */
0xFeeL      /* 합법 */
078         /* 잘못된 것:8 8진수 숫자가 아님 */
032UU       /* 잘못된 것: 접미사가 중복됨 */

다음은 다양한 타입의 정수 상수의 예입니다:

85         /* 10진수 */
0213       /* 8진수 */
0x4b       /* 16진수 */
30         /* int */
30u        /* 미정의 int */
30l        /* long */
30ul       /* 미정의 long */

실수 상수

실수 상수는 정수 부분, 소수점, 소수 부분, 지수 부분으로 구성되어 있습니다. 실수 상수는 소수점 형식이나 지수 형식으로 표현할 수 있습니다.

여기에는 몇 가지 실수 상수의 예가 있습니다:

3.14159       /* 합법 */
314159E-5L    /* 합법 */
510E          /* 잘못된 것: 부不完전 지수 */
210f          /* 잘못된 것: 소수 부분이나 지수가 없음 */
.e55          /* 잘못된 것: 정수나 소수 부분이 누락됨 */

소수점 형식으로 표현할 때는 소수점, 지수 또는 그两者를 모두 포함해야 합니다. 지수 형식으로 표현할 때는 정수 부분, 소수 부분 또는 그两者를 모두 포함해야 합니다. 부호 지수는 e나 E로 표시됩니다.

문자 상수

문자 상수는 단추 괄호로 감싸져 있으며, 예를 들어 'x'와 같으며, 간단한 문자 타입 변수에 저장할 수 있습니다. 문자 상수는 일반 문자(예: 'x')나 이스케이프 시퀀스(예: '\t') 또는 일반 문자(예: '\u0)2C0')

C#에서 특정 문자는 앞에 반취리릭 슬래시가 있을 때 특별한 의미를 가지며, 줄 바꿈 문자(\n)나 탭 문자(tab)(\t)를 나타낼 수 있습니다. 여기서 몇 가지 이스케이프 시퀀스 코드를 나열합니다:

이스케이프 시퀀스의미
\\\\ 문자
\'' 문자
\"" 문자
\?? 문자
\a알림 또는 벨
\b백스페이스 키(Backspace)
\fform feed 문자
\nnewline 문자
\r리턴
\t수평 탭 tab
\v가로 탭 tab
\ooo1에서 3자리의 8진수
\xhh ...한 개나 여러 개의 숫자의 16진수

다음은 몇 가지 이스케이프 시퀀스 문자의 예입니다:

namespace EscapeChar
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello\tWorld\n\n");
            Console.ReadLine();
        }
    }
}

위의 코드가 컴파일되고 실행될 때, 다음과 같은 결과가 생성됩니다:

Hello 	 World

문자열 상수

문자열 상수는 "" 또는 @""에 들어 있으며, 문자 상수와 유사하게 다음과 같은 문자를 포함할 수 있습니다: 일반 문자, escape 시퀀스, 및 일반 문자

문자열 상수를 사용할 때, 매우 긴 행을 여러 행으로 분할할 수 있으며, 각 부분 사이에 공백을 사용할 수 있습니다.

이곳에는 몇 가지 문자열 상수 예제가 있습니다. 아래에 나열된 여러 형식은 동일한 문자열을 나타냅니다.

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello 	 world";               // hello 		 world
string d = @"hello 	 world";               // hello 	 world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt
string i = "one
two
three";
string j = @"one
two
three";

상수 정의

상수는 const 키워드를 사용하여 정의된 상수는 다음과 같이 정의됩니다:

const <data_type> <constant_name> = value;

아래 코드는 프로그램에서 상수를 정의하고 사용하는 방법을 보여줍니다:

실시간 예제

using System;
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}
        Console.WriteLine("c1 = {0}, c2 = {1} 
                          SampleClass.c1, SampleClass.c2);
    }
}

위의 코드가 컴파일되고 실행될 때, 다음과 같은 결과가 생성됩니다:

x = 11, y = 22
c1 = 5, c2 = 10