[C#] var 키워드

PIAZZI·2024년 4월 22일

C#

목록 보기
1/9
post-thumbnail

var

  • 데이터 타입을 컴파일러가 직접 명시하는 키워드
  • 약간의 제약이 존재한다.

지역 변수를 선언할 때 컴파일러가 초기화 식에서 변수의 형식을 유추하도록 할 수 있다.

int value = 15; // 개발자가 직접 int 자료형 변수 선언
var value = 15; // 컴파일러가 직접 int 자료형 변수 선언

float value = 3.1415;
var value = 3.1415; // 컴파일러가 float 자료형으로 결정한다.

for(var x = 0; x < 10; x++) {}// for 문에서의 사용

foreach(var value in list) {} // foreach 문에서의 사용

using var value = new StreamReader("C:\\...") {} //using state문에서의 사용

주의할 점

  1. 선언만 하고 초기화를 하지 않으면 안된다.

    • var value; 처럼 선언만 해서는 안되며 반드시 값을 할당해야한다.
  2. 전역변수로는 사용이 불가하다.

static var value = 2; // 전역 변수에서 var 키워드를 사용했기에 실제로 오류가 난다.

static void Main(){
.
.
}
  1. 함수의 반환형 설정 부분에 사용 할 수 없다.
static var AddValue(int a, int b){ // 함수 반환형 자리에 사용 불가능하다.
.
.
}
  1. 매개 변수의 인자에 적는 타입으로 사용할 수 없다.
static int AddValue(var a, var b){ // 매개 변수 인자에 사용 불가능하다.
.
.
}
  1. var 사용을 통해 초기화된 타입은 고정되며, 이후에 변경할 수 없다.
    • var 사용을 통해 자료형이 정해진 변수를 도중에 다른 타입으로 변경할 경우 에러가 발생한다.

보통은 자료형이 복잡할 경우 var를 사용하면 훨씬 수월해진다.

List<List<int>> value = new List<List<int>>();
//이런 코드가 있다면
var value = new List<List<int>>();
//위와 같이 간단하게 사용할 수 있다.

var로 선언하면 컴파일러가 할당된 값을 확인하고 이에 맞는 변수의 타입을 결정하게 되기에, 개발자를 대신하여 올바른 타입을 명시하는 것이다. 이는 개발자가 올바르지 않은 타입을 지정하는 것을 방지한다.

profile
범부에오

0개의 댓글