C# 상수 & 변수

정용·2024년 4월 5일
post-thumbnail

『상수 & 변수』

● C# 변수

☆로컬변수: 함수 안쪽에 선언된 변수

☆전역변수 : Field

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

로컬 변수는 해당 메소드내에서만 사용이 되며, 메소드 호출이 끝나면 소멸된다.

반면 필드는 클래스의 객체가 살아있는 한 계속 존속하며 다른 메소드들에서 필드를 참조할 수 있다.

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

모든 C# 변수의 이름은 대소문자를 구별한다.
예를 들어 val1과 Val1은 다른 변수이다.

그럼 간단한 예제를 살펴보도록 하겠다.

using system;

namespace ConsoleApplication1
{
	class CSVar
    {
    	//필드 (클래스 내에서 공통으로 사용되는 전역변수)
        int globalVar;
        const int MAX = 1024;       //const : 상수 선언
        
        public void Method1()
        {
        	int loacalVar;       //로컬 변수
            
            Console.WriteLine(globalVar);
            Console.WriteLine(locakVar);
        }
    }
    
    class Program
    {
    	//모든 프로그램에는 main()이 있어야 함
        static void mian(string[] args);
        {
        	//테스트
            CSVar obj = new CSVar();
            obj.Mothod1();       //obj가 참조하는 객체에서 Method1을 실행
        }
    }
}
  • 필드 globalVar는 값을 명시적으로 할당하지 않은 경우 0이 할당된다.
    global(전역) = 객체 or 클래스 내에서의 전역

  • 지역변수 localVar는 값을 할당하지 않고 사용하게 되면, 컴파일 에러가 발생된다 !

● C# 상수


사실 처음 배울 땐 이해하기 쉽지 않았다. .
각설하고 상수로 넘어가보겠다.

C# 상수는 C# 키워드 const를 사용하여 정의한다. C# 변수와 굉장히 유사한데, 다만 앞에 const를 붙여 상수임을 나타낸다.

상수와 변수의 차이점은 변수는 프로그램 중간에 값을 변경할 수 있지만, 상수는 초기에 정한 값을 중간에 변경이 불가능하다.

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

☆컴파일 : 소스코드를 기계어 혹은 실행 가능한 프로그램으로 변환하는 과정

const 대신에 readonly 키워드를 사용해서 읽기 전용 필드를 만들 수 있다.
readonly는 필드 선언부나 클래스 생성자에서 그 값을 지정할 수 있고, 런타임 시 값이 결정된다.

마찬가지로 간단한 예제를 보고 마치도록 하겠다.

using System;

namespace ConsoleApplication1
{
	class CSVar
    {
    	const int Max_Value = 1024;       //상수
        
        //readonly 필드
        redonly int MAX;
        public CSVar()
        {
        MAX = 1;
        }
    }
}

오늘 내용:

변수

-로컬변수 ,전역변수, 변수의 이름 구별

상수

-변수와 상수의 차이점, 컴파일, readonly

profile
예예

0개의 댓글