본문 바로가기

Program Language/C#

[3] 데이터형(1)

데이터형

 

C#의 데이터형 object로부터 파생된 객체

 

System.Object == object

 

데이터형은 CTS에서 정의된 객체

 

c++

int(4byte) 메모리 확보

메모리 공간안에 저장할 수 있는 유효범위가 결정 됨

넘어서면 overflow

 

C#은 object로부터 파생 됨.

메모리 부분만 관여 하는것이 아니라 메모리 값을 다른곳에 쓸 수 있는 메서드가 존재

메서드 안에 변수들 존재

 

int a; 라고 하면 object 메서드를 모두 가지고 있음

C#에서는 object형이라고 있음

객체를 선언하기 위한 클래스라고 볼 수 있음

 

IL언어로 바뀌면 System.Object로 바뀜

CLR에서 재컴파일 되서 돌아갈 수 있도록 변환

 

 

C#에서는 char (2byte임)

 

그 이유는 유니코드 사용하기 때문

 

sbyte <- 음의 부호 사용하기 위함

 

 

Float 는 Single로 사용

Decimal은 새로운 개념(자릿수 증가 표현)

 

기본데이터형으로 문자열형이 생김

 

bool 형

 

true, false만 저장함

0과 그 이외의 값은 사용 금지....

무조건 true false 만 사용 가능

 

Main은 반드시 static 선언해야함.(CLR 때문)

 

char 형 

 

유니코드 (2byte)

 

char형의 암시적 값 변환

 

int var = 'a'; <-유니코드 변환 된 값으로 정수형으로 저장(암시적 변환)

int Number = '7'; -> 55로 변환 됨

 

아스키코드 값 유니코드 값 같음(키보드 있는 키 한정)

 

Char Mun = '7'

 

(int)Mun <- 이면 명시적으로 변환 시킨거

 

암시적 변환 -> 자동으로 바꿔줌

명시적 변환 -> 내가 명시해서 바꾸는것.

 

byte, sbyte 형

 

byte유효 범위

부호 없는 0~255

 

sbyte 유효 범위

-128 ~ 127

 

short, ushort 형

 

short 유효범위

-32768 ~ 32767

 

ushort 유효범위

0~65535

 

short형 유효범위 값 출력 할때

 

short.MinValue

short.MaxValue

 

int ,uint, float 형

 

int 유효값 범위

-2147483648 ~ 2147483647

 

uint 유효값 범위

 

2147483647 * 2 + 1;

 

float 형

소수점형 뒤에 f, F 접미사 명시, 없으면 double 형

 

C/C++ 문자열과 차이점

문자열 끝에 0, '\0'

 

C#은 문자열에 대해서 널값 고민 할 필요 없다.

 

+ : 문자열 연결

==  : 문자열 비교

[인덱스] : 문자

 

문자열에 '\' 포함하는 경우

 

@"C:\temp\test.text < @ 붙이면 경로 다 처리 해줌

만약 @ 쓰지 않으면

C:\\temp\\test.text 기존처럼 처리 해줘야함.

 

 

var 형(암시적 데이터형)

 

대입되는 데이터에 따라 데이터형 결정

 

var를 사용할 수 없는 예

 

null 값 초기화, 매개변수로는 사용 못함

var는 지역변수로만 사용, 클래스 멤버로는 사용 못함.

연속적으로 초기화 하는 경우

var m = 10, n = 20;

이렇게 사용할 수는 없다.

 

소수점 몇째자리 표현할때

{0:f1} <- 자리수 표시

 

nullable 형

 

null을 허용하지 않는 데이터형이 null 값을 허용

 

형식

 

데이터형? 변수명;

 

int? Var1;

bool? Var2 = null; // true, false, null

 

속성(기존 메서드말고 추가 메서드 이씅ㅁ)

.HasValue // true, false

.Value // 읽기 전용

 

데이터 변환

 

.ToString() : 현재의 값을 문자열로 바꿔줌.

 

기본 데이터형.Parse() : 문자열 숫자 변환

 

 

Convert.ToInt32()

Convert.ToSingle()

Convert.ToXXXX()

 

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

[2] C# 프로그래밍 구조  (0) 2021.04.12
[1] 닷넷 프레임워크와 C#언어  (0) 2021.04.12