728x90
반응형
오늘은 파이썬과 C, 자바에는 없지만, C#에는 있는 신기한 키워드 var에 대해 알아보겠습니다.
파이썬을 제외하고 프로그램 언어에서 변수를 선언해줄 때,
대부분 "int, double, float, string" 등등 선언할 변수의 타입을 미리 지정해줍니다.
var는 "int, double, float, string" 위치에 대신 쓸 수 있는 키워드로, C# 컴파일러는 var 변수에 저장되는 값을 자동으로 추론해서 적당한 형식으로 변환하는데, 이 기능을 형식 추론이라고 한다.
아래 코드의 num1은 정수형 변수로 (명시적) 선언되었고, 반면 num2는 var 변수로 (암시적) 선언되었다.
using System;
class HelloWorld {
static void Main() {
int num1 = 10; // 명시적 (explicit)
var num2 = 20; // 암시적 (implicit)
var message = "Hello"; // 암시적 (implicit)
Console.WriteLine($"num1's type : {num1.GetType()}");
Console.WriteLine($"num2's type : {num2.GetType()}");
Console.WriteLine($"message's type : {message.GetType()}");
}
}
num1 과 num2 의 타입형을 각각 출력해보면, 아래 처럼 결과가 나온다. C# 컴파일러가 var로 선언한 num2에 대해서도 자동으로 string 변수라고 인식하는 것이다.
추가로, var 키워드를 가지고 문자 하나를 입력받는 방법에 대해서도 알아볼게요.
- Console.Read() : 콘솔에서 한 문자를 정수로 입력받음
Console.Read()은 정수를 입력으로 받기 때문에, 문자 하나를 입력받으려고 하면 오류가 발생합니다.
char a = Console.Read();
Console.WriteLine(a);
/*
결과
main.cs(15,22): error CS0266: Cannot implicitly convert type `int' to `char'. An explicit conversion exists (are you missing a cast?) Compilation failed: 1 error(s), 0 warnings
*/
이때, var를 사용해줍니다.
using System;
class HelloWorld {
static void Main() {
var a = Console.ReadLine(); // 문자열 입력 받기
var b = Convert.ToChar(Console.Read()); // 문자 하나 입력 받기
Console.WriteLine($"a : {a}, b : {b}");
}
}
반응형