안녕하세요. 애드라이프 입니다.
이전 포스팅에서 상수와 열거형식인 enum에 대해서 배웠습니다.
이전 포스팅에 대해 궁금하시면 하단 링크를 참고해주세요.
이번 포스팅에서는 Nullable형식과 var을 배우겠습니다.
데이터 형식은 이번 포스팅을 마지막으로 마무리 됩니다.
먼저 Nullable형식입니다.
써진 그대로보면 Null은 아무것도 없다는 뜻이고
able은 할수있다, 될수있다라는 뜻을 가지고 있습니다.
즉, 아무것도 없는 상태가 될 수 있다! 라는 의미로 해석 할 수있습니다.
Nullable Nullable이란 아무것도 없는 상태가 가능한 형식을 말합니다. 앞서 변수등을 배울때 기본적인 전제가 값의 초기화였습니다. 즉, 어떤 값이든 가지고있어야 한다는 뜻이 됩니다.
하지만 Nullable형식은 그것을 가능하게 해줍니다. 다만 초기화를 해줘야함은 변함이 없지요. 기본구조 : 데이터형식? 변수이름 = null; 이런식으로 말이죠?
예시를 들어볼까요? int? a = null; 실제로는 이렇게 쓰입니다. 형식 선언뒤에 물음표를 붙이기만하면 Nullable형식이 될 수있습니다. 간단하죠?
사용방법은 이정도면 충분하고 주의점에 대해서 언급하겠습니다. 우선 Nullable형식은 2가지 기능을 지원해줍니다. HasValue와 Value입니다. HasValue는 Nullable형식의 객체가 값을 가지고있는지에 대해 true,false로 표현해줍니다. Value는 값을 표현해 주구요.
위에서 언급했듯이 Nullable형식은 비어있는 상태를 허용해줍니다. 하지만 비어있는상태의 Nallable형식에 Value로서 값을 가져오려하면 InvalidOperationException 예외처리와 만남을 가지게 됩니다.
Nullable형식을 쓰게되면 HasValue로 값의 유무를 확인하고 Value로 값을 가지고 오는 방식을 습관화 하는것이 좋습니다. 참고로 Nullable 형식은 값 형식만 사용 가능합니다. |
프로그램은 Nullable의 HasValue와 Value의
쓰임을 보도록 하겠습니다.
using static System.Console;
namespace DataFormat_Nullable
{
class Program
{
static void Main(string[] args)
{
int? x = null;
WriteLine(x.HasValue); //x에 값이 있는지 판단
WriteLine(x != null); //x가 null이 아닌지 판단
x = 1; //null이던 x에 값 대입
WriteLine(x.HasValue); //x에 값이 있는지 판단
WriteLine(x != null); //x가 null이 아닌지 판단
WriteLine(x.Value); //x가 null이 아닌지 판단
}
}
}
간단한 프로그램과 그 결과를 보니 좀 더 이해하는데
도움이 되었나요? 프로그램 설명은 간략하게 주석으로 달아 놓았습니다.
프로젝트 생성 및 실행하는 방법이 궁금하신분들은
아래 링크를 참고해주세요.!!
C# 프로그램 시작하기 -간단한 콘솔 프로그램 만들기 #2 <- 링크
이제 데이터 형식의 마지막인 var를 살펴보겠습니다.
var var란 간단히 말하면 컴파일러에게 알아서 데이터형식을 판단하게 시키는 역할을 수행하는 것입니다.
예를들면 우리는 정수형 변수를 선언 할때 int x = 1; 이런식으로 선언을 해야합니다. 그럼 컴파일러는 x라는 변수는 1이라는 데이터를 가진 int형 변수구나 라고 알아먹게 되는것이죠.
그럼 var x = 1; 이라고 선언하면 어떻게 될까요? 컴파일러는 우측에 있는 값의 형식을 보고 x는 int형변수라고 판단하게 됩니다.
var x = 1; var y = 1.1f; var z = "애드라이프"
위 예시 모두 오른쪽에 있는 데이터 형식으로 각각의 x, y, z의 데이터 형식을 int, float, string이라고 판단하게됩니다. 그러니 반듯이 선언하면서 초기화를 해야합니다. 참고로 var형식은 지역변수로 밖에 사용하지 못합니다. 반듯이 초기화햐야하는 제약때문이죠. |
이제 프로그램을 보면서 개념을 확실히 해볼텐데요.
프로그램을 보기전에 이번 프로그램에서 사용되는
GetType()이라는 메소드를 알아보겠습니다.
GetType()이란, 객체의 실제 데이터 타입을 반환해주는 역할을 수행힙니다.
사용방법은 프로그램을 보면 바로 이해되실 겁니다.
using static System.Console;
namespace DataFormat_var
{
class Program
{
static void Main(string[] args)
{
var x = 1;
WriteLine("Data type : {0}, Data : {1}",x.GetType(),x);
var y = 1.1;
WriteLine("Data type : {0}, Data : {1}", y.GetType(), y);
var z = "애드라이프";
WriteLine("Data type : {0}, Data : {1}", z.GetType(), z);
}
}
}
프로그램 결과를 보면 알 수 있지만
자동으로 데이터 형식을 지정해 준다는게 너무 놀랍네요.
C#은 참 똑똑한거 같아요!! :)
이번 포스팅도 이렇게 마무리가 되었습니다.
지금까지 3 ~ 3.5 까지 데이터 형식에 대한 포스팅 잘 보셨나요?
참 기초가 되는 부분이지만 소홀이 넘기면
언제고 발목을 붙잡는 부분이기도 합니다.
기초부터 튼튼하게 그리고 즐겁게 프로그래밍 하시길 기원합니다.
그럼 다음에는 더욱 유익한 포스팅으로 찾아오겠습니다.
by애드라이프
[ 데이터 형식 포스팅 모음 ]
'C# 프로그래밍 > 기초 다지기' 카테고리의 다른 글
C# 프로그램 시작하기 - 문자열 파헤치기 #4-5 (0) | 2020.04.11 |
---|---|
C# 프로그램 시작하기 - 문자열 파헤치기 #4 (0) | 2020.04.10 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-4 (0) | 2020.04.08 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-3 (0) | 2020.04.07 |
C# 프로그램 시작하기 - 데이터 형식 익히기 #3-2 (0) | 2020.04.06 |