사실 c#으로 프로젝트,SI 보단
시스템 유지보수나 개인작성으로만 하다보니
실용만 생각했지
기본적인 면에서 약간 헷갈리는 부분도 존재했습니다.
구분 |
값 형식 (Value type) |
참조 형식 (Reference Type) |
---|---|---|
종류 | 내장형 (int, char, float, ...) 사용자 정의형 (enum, struct) |
Object, string |
메모리 사용 | Stack |
Stack, Heap |
대입 (Assignment) | 복사 |
참조 변경 |
크기 | 고정 |
가변 |
Garbage Collector 지원 | 지원 X |
지원 O |
-> 다시 한 번 기본적인 것부터 생각해볼 수 있었네요...
문제는 가베지 콜렉터 지원이 무조건 다 되는줄 알았는데 그게 아니었네요.
예약어 | 구조체 형식 | 기본값 | 범위 | 크기 |
---|---|---|---|---|
bool | System.Boolean |
false |
- |
1 |
byte | System.Byte |
0 |
0~255 |
부호없는 8비트 정수 |
sbyte | System.SByte |
0 |
-128~127 |
부호있는 8비트 정수 |
char | System.Char |
'\0' |
U+0000 ~ U+ffff |
유니코드16비트 문자 |
decimal | System.Decimal |
0.0M |
+-1.0x10 28 ~ 7.9x1028 |
28-29개의 유효 자릿수 |
double | System.Double |
0.0D |
+-5.0x10324 ~ 1.7x10308 |
15-16개의 자릿수 |
float | System.Single |
0.0F |
+-1.5x1045 ~ +-3.4x1038 |
7개의 자릿수 |
int | System..Int32 |
0 |
-2,147,483,648 ~ 2,147,483,647 |
부호있는 32비트 정수 |
uint | System.UInt32 |
0 |
0 ~ 4,294,967,295 |
부호없는 32비트 정수 |
long | System.Int64 |
0L |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
부호있는 64비트 정수 |
ulong | System.UInt64 |
0 |
0~18,446,744,073,709,551,615 |
부호없는 64비트 정수 |
object | System.Object |
|||
short | System.Int16 |
0 |
-32,768 ~ 32,767 |
부호있는 16비트 정수 |
ushort | System.UInt16 |
0 |
0 ~ 65,535 |
부호없는 16비트 정수 |
string | System.String |
null |
-> decimal은 별로 써본적이 없었네요.
간혹 자료형 overflow나 자료형간 변환시 참조하면 될것같습니다.
* 사용자 정의 데이터 형식
- 열거형 Enumeration, 상수집합을 정수형으로 대신해 표현
enum RGB {Red, Green, Blue}; => 각 상수별로 값 설정됨
Red = 0 / Green = 1 / Blue = 2 ...
Console.WriteLine(RGB.Red); // 0
Console.WriteLine(RGB.Green); // 1
Console.WriteLine(RGB.Blue); // 2
- struct , 클래스와 비슷한 사용자 정의 자료형,
struct Man
{
public string name;
public string height;
public string weight;
...
}
Man park;
park.name = "박xx";
park.height = "167";
park.weight = "68";
'프로그래밍&IT > C#' 카테고리의 다른 글
DateTime 클래스 (0) | 2014.05.08 |
---|---|
C# 숫자결과의 출력 포맷 지정 (0) | 2014.01.04 |
C# Hashtable 클래스 (.net framework 3.5 기준 / MSDN) (0) | 2013.12.29 |
C#, MySQL - MySql database 연결하기 (0) | 2013.12.28 |
C# - MessgeBox , 디폴트박스외 OK, OKCANCEL 등 (0) | 2013.12.15 |