enum

enumeration

열거형은 몇 개의 상수 값들을 가지며 이를 사용하여 변수를 선언하거나 함수에서 사용할 수 있다.

 

enum Color { Red, Green, Blue };

 

열거형 Color는 Red, Green, Blue라는 세 개의 상수값이 있다. 각 상수 값은 0부터 시작하는 숫자로 자동으로 지정된다.

Red=0, Green=1, Blue=2 

선언된 순서로 값이 지정되기 때문에 순서에 영향을 받는다.

 

만약 Red=10 으로 선언된 경우 뒤에는 별도의 선언이 없는 경우 자동으로 Green=11, Blue=12로 지정된다.

 

열거형으로 정의된 상수 값은 변수나 함수에서 사용될 수 있다.

Color myColor = new Color();	// 기본값 0 ( Red )
myColor = Color.Red;

 

enum to int

enum은 캐스트를 통해서 정수로 사용하는것도 가능하다.

int a = (int)Color.Red;

 

enum to string

enum 값을 toString()하면 선언된 상수명으로 반환된다.

string strColor = Color.Red.ToString();
// strColor는 Red 이다.

 

string to enum

문자열에서 enum 상수명으로 사용하는것도 가능하다.

string colorName = "Red";
Color color = new Color();
Enum.TryParse<eCurrency>(str, out curr);
// curr = Color.Red;

 

숫자를 문자열 형태로 볼 수 있기 때문에 코드의 가독성을 올리기 위한 매크로상수처럼 사용하거나 특정 상태를 관리하기 위해서 사용하기 한다.

728x90
반응형

char

유니코드 문자를 표현하기 위한 데이터 타입이다.

2바이트의 크기를 가지며 0부터 65535까지의 값을 저장할 수 있다. 이 범위 내의 값은 유니코드 표준에서 정의된 문자와 대응되는데 A라는 문자를 char 타입으로 표현하면 65 값을 가진다.

또한 이스케이프를 사용하여 특수 문자들을 표현할 수 있다. \n, \t ...

 

C#의 문자열은 char 타입의 배열 형태로 구현되어 있으며 문자열에서 인덱스를 사용하여 개별 문자에 접근하는 것이 가능하다.

 

 

728x90
반응형

byte

8비트 부호 없는 정수형 데이터 타입이다.

0 ~ 255까지의 값을 표현할 수 있으며 메모리의 크기가 작아서 주로 이미지나 음악 파일 등의 바이너리 데이터를 다룰 때 사용한다. 

 

또한 비트 연산을 처리할 때에도 byte 데이터 타입이 자주 사용된다.

byte b = 255;
byte b2 = (byte)128;

 

파일이나 이미지 등의 경우 0과 1로 이루어진 이진 데이터이기 때문에 각각의 비트는 0 또는 1의 값을 가진다. 이진 데이터를 다룰 때 byte 단위로 처리해야 하므로 해당 타입이 자주 사용되는 것이다.

 

예를 들어 이미지 파일을 읽어와서 메모리에 저장한다고 할 때 메모리에 저장하기 위해서는 파일의 크기만큼의 바이트 배열을 선언하고 파일에서 바이트 단위로 읽어와서 배열에 저장해야 한다. 이때 각각의 바이트는 0에서 255까지의 값을 가질 수 있기 때문에 byte 타입으로 배열을 선언한다. 

 

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // 파일 경로
        string filePath = "C:\\images\\test.jpg";

        // 파일을 바이트 배열로 읽어오기
        byte[] fileBytes = File.ReadAllBytes(filePath);

        // 바이트 배열의 크기 출력
        Console.WriteLine("File size: " + fileBytes.Length + " bytes");

        // 첫 번째 바이트 값 출력
        Console.WriteLine("First byte: " + fileBytes[0]);
    }
}

 

sbyte

부호가 있는 정수형 데이터 타입이다. byte와 달리 부호 비트를 가지기 때문에 음수 값을 표현할 수 있다.

주로 바이너리 파일 처리나 기계어 처리와 같은 곳에서 사용되는데 컴퓨터 메모리의 물리적 한계로 인해 값의 범위가 중요한 상황에서는 sbyte를 사용해서 적절하게 범위를 다룰 수도 있다.

 

C#에서는 보통 byte와 함께 사용하면서 비트 연산을 수행하기도 한다.

728x90
반응형

+ Recent posts