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.";
자바스크립트의 템플릿 리터럴과 유사한 기능
'C# 공부' 카테고리의 다른 글
C# 기본기 05 - 인터페이스와 열거형(Enums) (0) | 2025.02.10 |
---|---|
C# 기본기 04 - 클래스, 상속, 제너릭 (0) | 2025.02.10 |
C# 기본기 03 - 메서드와 구조체 (0) | 2025.02.10 |
C# 기본기 02 - 배열과 콜렉션 (0) | 2025.02.10 |