본문 바로가기
C# 공부

C# 기본기 01 - 기본 자료형, 형 변환, 문자열

by 나노다 2025. 2. 10.

Hello World로 기본 코드 구조 확인

using System;

namespace HelloWorld
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello World!");    
    }
  }
}

using System;

  • C#에서 기본 제공하는 System이란 네임스페이스를 불러옴 (Console 클래스 사용 위함)
  • 만약 using System을 안 했다면, System.Console.WriteLine()처럼 사용해야함

namespace HelloWorld

  • namespace는 C#에서 코드를 논리적으로 그룹화하기 위해 사용
  • program이란 클래스는 HelloWorld란 네임스페이스를 기준으로 정의됨!
  • 여러 클래스를 정의할 때 네임스페이스를 통해 구분함으로써 코드 간 충돌 방지 가능

class program

  • C#에서 클래스를 정의하는 키워드, 여기서 클래스명은 program

static void Main(string[] args)

  • C#의 진입점(=entry point), Main 메서드는 프로그램이 시작될 때 자동 호출됨
  • string[] args는 이 메서드의 인자 이름이 args고, 그 자료타입은 문자열을 요소로 갖는 배열이라는 뜻
C#의 코드 컨벤션
클래스, 메서드, 프로퍼티 등은 PascalCase
변수, 매개변수, 로컬 변수 등은 camelCase
코드블록 표시를 위한 중괄호는 줄바꿈 후 사용

C#의 기본 자료형

자료형
.NET 데이타 타입
크기 (바이트)
범위
sbyte
System.SByte
1
-128 ~ 127
byte
System.Byte
1
0 ~ 255
short
System.Int16
2
-32,768 ~ 32,767
ushort
System.UInt16
2
0 ~ 65,535
int
System.Int32
4
-2,147,483,648 ~ 2,147,483,647
uint
System.UInt32
4
0 ~ 4,294,967,295
long
System.Int64
8
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
ulong
System.UInt64
8
0 ~ 18,446,744,073,709,551,615
float
System.Single
4
±1.5 × 10^-45 ~ ±3.4 × 10^38
double
System.Double
8
±5.0 × 10^-324 ~ ±1.7 × 10^308
decimal
System.Decimal
16
±1.0 × 10^-28 ~ ±7.9 × 10^28
char
System.Char
2
유니코드 문자
string
System.String
가변
유니코드 문자열
bool
System.Boolean
1
true 또는 false

형 변환

명시적 형 변환

int num1 = 10;
long num2 = (long)num1;   // int를 long으로 명시적 형변환

num2가 담을 값이 long 타입이기 때문에, int 타입이던 num1을 (long)을 통해 명시적으로 변환

암시적 형 변환

1) 작은 데이터 타입에서 더 큰 데이터타입으로 대입하는 경우

byte num1 = 10;
int num2 = num1;  // byte형에서 int형으로 암시적 형변환

num2가 담을 값이 int 타입이기 때문에, byte 타입이던 num1을 변환해줘야하지만, 대입하려는 int 타입이 byte 타입보다 크기 때문에 자동 변환됨

2) 리터럴 값이 대입되는 경우

float result = 1;  // 1은 int형 리터럴 값이지만 float형으로 암시적 형변환

3) 정수형과 부동소수점형 값 간의 연산을 수행하는 경우

int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2;  // int형과 float형의 덧셈에서 float형으로 암시적 형변환

num1의 10이 정수형인 int 타입이기 때문에, 3.14f와의 연산을 위해 부동소수점형인 float로 자동 변환됨


문자열 관련 기능 (미숙한 부분만)

01) 분할

string str = "Hello, World!";
string[] words = str.Split(','); // ["Hello", "World!"]

구분자인 ","를 기준으로 문자열을 분할해 배열에 담는다

02) 검색

string str = "Hello, World!";
int index = str.IndexOf("World"); // 7

03) 대체

string str = "Hello, World!";
string newStr = str.Replace("World", "Universe"); // "Hello, Universe!"

첫번째 인자의 문자열 부분을 두 번째 인자의 문자열로 바꾼다

04) 변환

/* 변환할자료형.Parse(대상문자열) */
string str = "123";
int num = int.Parse(str); // 123

/* 다른 자료형을 문자열로 변환 */
int num = 123;
string str = num.ToString(); // "123"

05) 문자열 보간

string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";

자바스크립트의 템플릿 리터럴과 유사한 기능