본문 바로가기

.NET/C#

C# 타입

728x90
반응형

타입에 대해서는 상당히 많은 분들의 자료가 있고 아무리 이상한 서적이라도 타입에 대해서는 자세히 나와 있는 편입니다 ㅎ

그래서 타입 하나 하나를 자세히 알아보지는 않을 생각입니다. 우선 어떤 타입이 있는지 자주 쓰는타입에 대해서 알아 보려고 합니다.

byte data1 = 10;        //1byte 부호없는 정수
sbyte data2 = 10;       //1byte 부호있는 정수
short data3 = 10;       //2byte 부호있는 정수
ushort data4 = 10;      //2byte 부호없는 정수
int data5 = 10;         //4byte 부호있는 정수
uint data6 = 10;        //4byte 부호없는 정수
long data7 = 10;        //8byte 부호있는 정수
ulong data8 = 10;       //8byte 부호없는 정수

float data9 = (float)11.11;    //4byte 부동소수점
float data9 = 11.11f;    //4byte 부동소수점
double data10 = 11.11;  //8byte 부동소수점

decimal data11 = (decimal)123.45;//16byte 숫자
decimal data11 = 123.45m;//16byte 숫자

char data12 = 'A';      //2byte 문자
bool data13 = true;     //true or false

string data14 = "문자열 자료형";//reference type

System.Int32 y = 10;  // ==> int y = 10;
string 형식은 reference 형이라는 것을 잘 알아주심이 좋을겁니다.

가끔 string에 이 형식 때문에 애먹으시는 분들을 많이 뵙었죠. 저도 그랬었고요 ^^

타입에 대해 설명할 때 참 많이들 말씀 하시는 것들이 있지요

바로 overflow 입니다. 보통 타입에 대해서 배우고 한번씩 overflow 되는 걸 보여주시죠 ㅎ

그래서 저도 관행(?)에 따라 overflow에 대한 테스트를 한번 해보고 마치도록 하겠습니다.

int에 관해서만 간단히 해보고 넘어가겠습니다.

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Linq;

    4 using System.Text;

    5 

    6 namespace ValueType

    7 {

    8     class Program

    9     {

   10         static void Main(string[] args)

   11         {

   12             int x = int.MaxValue;

   13             Console.WriteLine("MAXVALUE : {0}", x);

   14             Console.WriteLine("OVERFLOW : {0}", x + 1);

   15         }

   16     }

   17 }

int의 최고값을 가지고 하고 거기서 1을 더했을 때의 값을 출력해보는 테스트입니다. 실행을 시키면 어떤값이 나올지 대충 예상이 되지 않으십니까?(안되신다고요? ㅜㅜ)

보시는 것과 같이 맥스값은 21...어쩌구 저쩌구 나오지만 +1을 했을때는 전혀 다른 쌩뚱 맞은 값이 튀어나오죠. 이게 바로 overflow라고 합니다. 해당 값의 최대 한도값을 넘어 갔을 때 생기는 문제입니다. 이럴때는 더 높은 수를 보관할 수 있는 값을 변수로 취해야 되겠지요.

그리고 마지막으로 네이밍시에 주의점에 대해서 살짝 살펴보겠습니다.

보통 네이밍 방법에는 파스칼과, 캐멀(?)이 쓰입니다.
파스칼은 단어 앞글자를 대문자로 쓰는 방법입니다. 예를 들면 Name, UserName 이런식이죠
캐멀은 첫 단어의 앞글자는 소문자 두번째 단어부터는 대문자로 쓰는 방법입니다. 예를 들면 name, userName 이런식으로요

보통 메소드, 클래스, 구조체 등의 네이밍시에는 파스칼을 쓰고 변수명은 캐멀형을 쓰게 됩니다~~

유의할점이라면 저 두개의 방법을 준수하고, 전체 대문자, _, 약어는 피하는게 좋습니다. 네이밍시에는 변수명만 보아도 어떤 변수인지 알 수 있게 만드는 것이 좋은것 입니다.

그럼 이것을 마치도록 하겠습니다.
긴 글 봐주셔서 감사합니다~~
728x90
반응형

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

Class(2)  (0) 2009.12.16
Class(1)  (0) 2009.12.16
C# enum, struct  (0) 2009.12.16
C# Array 에 대해서...  (2) 2009.12.16
C# 메소드  (0) 2009.12.15
C# 반복문  (0) 2009.12.15
C# 성적 관리 프로그램(단순 학점 부여)  (0) 2009.12.15
C# 기초 계산기  (0) 2009.12.15
C# value타입 vs Reference타입  (2) 2009.12.15
시샵 기초중에 기초 Hello world 시작하기  (0) 2009.12.15