본문 바로가기
PROGRAMING/C#

값 타입

by 평온평온 2018. 1. 3.
반응형

값타입


값 타입 : 스택에 할달되며 변수가 값 자체를 직접 가진다. 

정수, 문자, 실수 들의 내장타입과 열거형, 구조체등이 값 타입이며 주로 크기가 작고 길이가 고정적인 값을 저장한다. 


선언하는 즉시 기억장소가 할당되므로 별도 초기화가 필요 없다, 


  • System.Byte   :( 크기 1), 부호 없음 
  • System.sByte  :( 크기 1), 부호 있음 
  • System.Int16  :( 크기 2), 부호 있음 
  • System.Uint16 : (크기2), 부호 없음 
  • System.Int32  : (크기4), 부호 있음 
  • System.UInt32 :(크기4), 부호 없음 
  • System.Int64 : (크기8), 부호 있음 
  • System.UInt64:(크기8), 부호 없음 
  • System.Char :(크기 2), 부호 있음 
  • System.Single :(크기 4), 부호 있음 
  • Systme.Double : (크기 8), 부호 있음 
  • System.Decimal : (크기 16), 부호 있음 
  • System.Boolen : ( 크기 1)

문자형인 Char는 16비트 길이의 유니코드 문자하나를 저장하낟. 유니코드는 세계의 모든 문자들 할상 똑같은 코드로 표현할수 있는 단일 코드체계이며, 공식적인 국제 표준 코드이다. 

열거형

열거형은 가능한 값의 집합을 사용자가 직접 정의하는 타입이다.. 내장형은 시스템에 미리 정의해 놓은 범위의 값만을 가지는데 비해 열거형은 사용자가 값의 종류를 정의할수가 있다. 


열거형은 값에 이름을 줄수가 있어서 가독성이 뛰어나다. 또한 집합에 속하지 안은 값은 사용을 할수가 없어 엉뚱한 값을 사용하는거에 대한 오류를 피할수가 있다. 


enum Car { Taxi, Tico, Gandger }


열거형은 내부적으로 정수형으로 저장되는데 별다른 지정이 없으면 4바이트 Int를 가진다. 최대 40억개의 열거멤버를 가질수가 있다. 


enum Car : byte { Taxi, Tico, Gandger }


위와 같이 구현을 하면 256개 이상 값을 가질수가 없다. 



구조체

구조체는 타입이 다른 변수들의 집합니다. 다양한 타입의 변수들을 멤버로 포함할수 있다.  따라서 멤버에 제한이 없이에 덩치가 커질수가 있다. 하지만, 아무리 커져도 

구조체는 스택에 생성되는 값이다. 구조체 자체가 값타입이다. 


struct ValueName 

{

public int nOld = 0;

{


구조체는 스택에 생성되는 값이므로 선언후 바로 사용이 가능하다. 바로 사용이 가능하다는 것은 new를 하지 않아도 된다는 것이다. 


하지만 참조타입인 클래스와 사용방법이 일관성있게 new 도 지원을 한다. 

구조체는 new로 생성을 한다하더라도 스택에 생성되는 값타입니다. 


반응형

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

확장 메소드  (0) 2018.01.11
Ref, Out에 의한 참조(Reference)  (0) 2018.01.08
삭제 패턴  (0) 2018.01.03
인터페이스 (Interface)  (0) 2017.12.27
param 매개 변수  (0) 2017.12.27