ice rabbit programming

[C#] C#의 자료형 본문

Development/C#

[C#] C#의 자료형

판교토끼 2020. 4. 10. 20:01

아무래도 학부 4년간 C++을 주로 사용했다보니, 차이가 있으면 C++과 비교하게 된다.

 

지난 글의 말미에서 말했던 것처럼, C++과 가장 큰 차이는 포인터의 유무라고 생각한다. 그리고 또 하나, 쉽게 발견할수 있는 차이는 바로 'var'이다.

 

var

일단, int나 double 등의 자료형은 C계열 언어들과 동일하게 사용한다. 하지만 다음과 같은 문장을 쉽게 찾아볼 수 있다.

 

var myCar = new Car(); // 이러한 표기법은 권장되는 표기법인지,
Car myCar = new Car(); // C# 코드를 관리해주는 Resharper와 같은 툴은 이 줄처럼 쓰면 위 문장으로 자동으로 수정한다.

 

var. variable(변수)의 줄임말이다. JavaScript를 해보신 분들은 var가 익숙할 것이다. 하지만 그것과는 약간 쓰임새가 다르다. JavaScript에서는 선언할 때 그냥 var를 사용하고, 어떤 타입이 될지 정할 수 없다. 하지만 C#에서의 var는 아예 타입이 정해지지 않은 경우가 아니라, 실제로 들어가는 값의 타입이 된다. 즉, 프로그래머는 var로 선언했지만 실제 컴파일러는 정해진 타입으로 생각한다.

 

그러므로, var myCar;과 같은 정해지지 않은 var 변수 C#에서 사용할 수 없다.

 

기본 자료형

기본적인 자료형은 상술했듯 C계열 언어들과 같다.

 

int myAge=26; // Int32
string myAnimal="Rabbit"; // String

 

저번 글에서도 언급했지만 C#의 자료형은 .NET Framework에서 alias(별칭)을 제공해준다. 그래서 실제로는 주석에 있는 Int32, String이다. 그래서 F12(VS에서 원형 검색)를 통해 int와 string의 원형으로 가보면 각각 System namespace 내의 Int32 구조체와 String 클래스로 선언되어 있다. 물론 String myAnimal로 사용해도 무방하다!

 

왜 int는 구조체고 string은 클래스인지는 추후 글에서 다루겠다.

'Development > C#' 카테고리의 다른 글

[C#] 메소드  (0) 2020.05.04
[C#] 배열(Array)  (0) 2020.04.30
[C#] C#의 자료형3 - Casting과 Boxing  (0) 2020.04.18
[C#] C#의 자료형2 - Value vs Reference, Nullable  (2) 2020.04.15
[C#] C#을 시작하며, .NET Framework  (0) 2020.04.09