본문으로 바로가기

C# 데이터 형식 익히기 #3-5 메인사진

 

안녕하세요. 애드라이프 입니다.

이전 포스팅에서  상수와 열거형식인 enum에 대해서 배웠습니다.

이전 포스팅에 대해 궁금하시면 하단 링크를 참고해주세요.

 C# 프로그램 시작하기 - 상수와 열거형식 <- 링크

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3-4

안녕하세요. 애드라이프 입니다. 이전 포스팅에서 object형식과 데이터 형식 변환에 대해서 같이 공부해 보았습니다. 이번 시간에는 지금까지의 배운 변수의 개념과는 좀 다른 상수에 대해 알아보고 열거형식에..

increase-life.tistory.com

 

이번 포스팅에서는 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# Nullable 형식 프로그램 결과

간단한 프로그램과 그 결과를 보니 좀 더 이해하는데

도움이 되었나요? 프로그램 설명은 간략하게 주석으로 달아 놓았습니다.

프로젝트 생성 및 실행하는 방법이 궁금하신분들은

아래 링크를 참고해주세요.!!

 

C# 프로그램 시작하기 -간단한 콘솔 프로그램 만들기 #2 <- 링크

 

C# 프로그램 시작하기 - 간단한 콘솔 프로젝트 만들기 #2

안녕하세요. 애드라이프입니다. 이전 포스팅에서는 C# 프로그래밍을 위한 개발 환경 구축을 진행했는데요. 모두 Visual Studio 2017 설치는 마무리 하셨나요? 혹시나 아직 개발 환경 구축을 하지못하신 분들을 위..

increase-life.tistory.com

 

 

이제 데이터 형식의 마지막인 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# var형식 프로그램 결과

 

프로그램 결과를 보면 알 수 있지만 

자동으로 데이터 형식을 지정해 준다는게 너무 놀랍네요.

C#은 참 똑똑한거 같아요!! :)

 

이번 포스팅도 이렇게 마무리가 되었습니다.

지금까지 3 ~ 3.5 까지 데이터 형식에 대한 포스팅 잘 보셨나요?

참 기초가 되는 부분이지만 소홀이 넘기면

언제고 발목을 붙잡는 부분이기도 합니다.

 

기초부터 튼튼하게 그리고 즐겁게 프로그래밍 하시길 기원합니다.

그럼 다음에는 더욱 유익한 포스팅으로 찾아오겠습니다.

 by애드라이프

 

[ 데이터 형식 포스팅 모음 ]

 

1.  데이터 형식의 기초와 정수형 데이터 형식

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3

안녕하세요. 애드라이프 입니다. 이전 포스팅에서 간단한 콘솔 프로그램을 제작해 보았고 실행해서 결과까지 지켜 보았는데 어려웠나요?? 어려웠다면 차근차근 처음부터 다시 봐보시길 추천드려요! 댓글로 질문하..

increase-life.tistory.com

2. 소수형 데이터 형식

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3-1

안녕하세요. 애드라이프 입니다. 이번에도 저번에 이어 데이터형식에 대해서 이어 나가볼까합니다. 오늘은 이전 포스팅에서 다루지 않았던 소수관련 데이터 형식을 다룰 예정입니다. 오늘의 주인공들이 정리된 표..

increase-life.tistory.com

3. 문자형 데이터 형식과 논리형 데이터 형식

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3-2

안녕하세요. 애드라이프 입니다. 이전 포스팅에서는 소수 데이터 형식을 알아보았습니다. 소수 데이터 형식 <- 링크 C# 프로그램 시작하기 - 데이터 형식 익히기 #3-1 안녕하세요. 애드라이프 입니다. 이번에도..

increase-life.tistory.com

4. object형식과 데이터 형식 변환

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3-3

안녕하세요. 애드라이프 입니다. 이전 포스팅에서 문자관련 데이터 형식을 다루었습니다. 이전 포스팅을 참고하고 싶은 분들은 아래 링크를 참고해 주세요. C# 프로그램 시작하기 - 데이터 형식 익히기 #3-2 <-..

increase-life.tistory.com

5. 상수와 열거형식

 

C# 프로그램 시작하기 - 데이터 형식 익히기 #3-4

안녕하세요. 애드라이프 입니다. 이전 포스팅에서 object형식과 데이터 형식 변환에 대해서 같이 공부해 보았습니다. 이번 시간에는 지금까지의 배운 변수의 개념과는 좀 다른 상수에 대해 알아보고 열거형식에..

increase-life.tistory.com