데이터형
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 |