본문 바로가기
개발/c#(c++과 차이점 위주)

[c#강좌] maxValue/minValue사용법 , null/nullable , 열거형상수enum

by BlueOcean&Shark 2019. 1. 21.


특별한 설명없이 아래 소스를 보시면 쉽게 이해 할 수 있습니다.

ex)

int maxi = int.MaxValue; // int형의 최대치

int mini = int.MinValue; // int형의 최소치

Console.WriteLine(maxi);

Console.WriteLine(mini);

 

long maxl = long.MaxValue; // long형의 최대치

long minl = long.MinValue; // long형의 최소치

Console.WriteLine(maxl);

Console.WriteLine(minl);

  

double maxd = double.MaxValue; // double형의 최대치

double mind = double.MinValue; // double형의 최소치

Console.WriteLine(maxd);

Console.WriteLine(mind);        

             





NULL(null) : 어떤 변수가 데이터를 가지고 있지 않을때

즉, 메모리상에 어떤 데이터도 갖고 있지 않을 때 사용하는 키워드

NULL타입을 가질 수 있는 자료형이 있고 가질 수 없는 자료형이 있음

             

1) reference 타입 

- NULL(null)을 가질 수 있는 데이터 타입 

ex) string

- 힙에 데이터 저장후 스택에는 해당 주소를 저장


2) value 타입 

- NULL(null)을 가질 수 없는 데이터 타입

(즉, 변수선언을 하면 메모리에 어떠한 값을 가진다는 의미)

ex) int, long, double, DateTime 등

- 스택에 데이터 저장

- Nullable형식을 적용면 value 타입도 null값을 가질 수 있음

Nullable을 선언 할 때는 "?"를 이용

ex)데이터형식? 변수명;  -  int? n = null;

              

Nullable타입은 HasValue와 Value속성을 가짐

- HasValue : true or false

- Value : 현재값         

ex) 

if(n1.HasValue)

 n = n1.Value;






enum은 열거형 상수를 표현하기 위한 것

- 선언 형식

enum 열거형식명 : 자료형 { 상수1, 상수2, 상수3 }

위의 자료형은 정수형만 사용가능 - byte, sbyte, short, ushort, int, uint, long, ulong

자료형은 생략가능하며 생략 시 int형의 자료형으로 생성

- 선언은 class밖에서 해주어야됨

ex)

enum Food0 : int { Apple, Water, Rice }

-> apple부터 = 0, water = 1, rice = 2로 자동생성


enum Food1 { Apple, Water, Rice }

-> apple부터 = 0, water = 1, rice = 2로 자동생성

              

ex)

enum Food2 { Apple = 2, Water, Rice }

-> apple부터 = 2, water = 3, rice = 4로 자동생성

                

ex)

enum Food3 { Apple = 5, Water= 10, Rice =11}

-> apple부터 = 5, water = 10, rice = 1로 생성