본문 바로가기
C#/이론

[예제로 배우는 C# 프로그래밍] 변수 및 상수

by 단월໒꒱ 2022. 6. 27.

 

C# 변수 및 상수

 

 

변수

 

  C# 변수는 메서드 안에서 해당 메서드의 지역 변수로 선언되거나 클래스 안에서 클래스 내의 멤버들이 사용하는 전역 변수(필드)로 선언될 수 있다. 

 

  지역 변수는 기본 값을 할당받지 못하기 때문에 반드시 사용 전에 값을 할당해야 하는 반면, 전역 변수(필드)는 값을 할당하지 않으면 해당 타입의 기본값이 자동으로 할당된다.  ex. int 타입의 필드인 경우 기본값 0이 할당

 

  변수의 이름은 대소문자를 구별한다.

 

 

 

변수 예제

 

 

using System;

namespace ConsoleApplication1
{
    class CSVar
    {
        //필드 (클래스 내에서 공통적으로 사용되는 전역 변수)
        int globalVar;
        const int MAX = 1024;

        public void Method1()
        {
            // 로컬변수
            int localVar;

            // 아래 할당이 없으면 에러 발생
            localVar = 100;

            Console.WriteLine(globalVar);
            Console.WriteLine(localVar);
        }
    }

    class Program
    {
        // 모든 프로그램에는 Main()이 있어야 함.
        static void Main(string[] args)
        {
            // 테스트
            CSVar obj = new CSVar();
            obj.Method1();
        }
    }
}

 

 

  - 필드 globalVar는 값을 명시적으로 할당하지 않은 경우 기본값 0이 할당된다.

  - 지역변수 localVar는 값을 할당하지 않고 사용하게 되면 컴파일러 에러가 발생한다.

 

 

 

상수

 

  C# 상수는 키워드 const를 사용하여 정의한다.

  const는 필드 선언부에서 사용되거나 메서드 내에서 사용될 수 있으며, 컴파일 시 상수값이 결정된다.

 

  위에서 다뤘던 변수는 프로그램 중간에 값을 변경할 수 있는 반면, 상수는 초기에 정한 값을 중간에 변경할 수 없다.

 

  const 대신 readonly 키워드를 사용하여 읽기전용 필드를 만들 수 있는데, 이는 개념적으로 상수와 비슷하다. readonly는 필드 선언부나 클래스 생성자에서 그 값을 지정할 수 있고, 런타임시 값이 결정된다.

 

 

using System;

namespace ConsoleApplication1
{
    class CSVar
    {
        // 상수
        const int MAX_VALUE = 1024;

        // readonly 필드 
        readonly int Max;
        public CSVar() 
        {
           Max = 1;
        }
        
        //...
    }
}

 

 

 

댓글