
오늘 학습 키워드
C# 기본, C# 문법 기초
오늘 학습 한 내용을 나만의 언어로 정리하기
C#과 .Net Framework
- C# : 객체 지향 프로그래밍 언어. 강력한 형식 시스템과 가비지 컬렉션 기능이 특징
- .Net Framework : 프로그래밍 플랫폼. 코드 → 컴파일 → 중간언어 → 각 머신에 맞는 언어로 변환함
C# 프로젝트 실행파일 위치
- 프로젝트 폴더\bin\Debug\net8.0\프로젝트명.exe
전역 Using
- 상단에 프로젝트 → 프로젝트명 속성 → 전역 using

자주 사용되는 부분을 알아서 추가해 둠
C# 기초 문법
출력
- Console.WriteLine() : 출력 후 줄넘김
- Console.Wirte() : 출력
- 이스케이프 시퀀스
| 이스케이프 시퀀스 | 설명 |
|---|---|
| \‘ | 작은따옴표(’) 삽입 |
| \“ | 큰따옴표(”) 삽입 |
| \\ | 역슬래시() 삽입 |
| \n | 새 줄(줄바꿈) 삽입 |
| \r | 현재 줄 맨 앞으로 이동 |
| \t | 탭 삽입 |
| \b | 백스페이스 삽입 |
주석
-
// : 한 줄 주석
-
/* */ : 여러 줄 주석
-
참고 :
- Ctrl + K, C : 주석 달기
- Ctrl + K, U : 주석 풀기
자료형
- 자주 사용되는 자료형 (바이트는 운영체제에 따라 다를 수 있음)
| 데이터타입 | 이름 | .Net 데이터타입 | 바이트 |
|---|---|---|---|
| 정수 | int | System.Int32 | 4 |
| 정수 | long | System.Int64 | 8 |
| 실수 | float | System.Single | 4 |
| 실수 | double | System.Double | 8 |
| 문자 | char | System.Char | 2 |
| 문자열 | String | System.String | ? |
| 불리언 | bool | System.Boolean | 1 |
- 자료형을 세분화하면 메모리를 효율적으로 사용할 수 있고, 데이터를 정확하게 표현할 수 있으며, 타입 안정성을 지킬 수 있다.
리터럴
- 프로그램에서 우리가 직접 쓰는 상수값. (ex. 10, a, 3.14)
- 정수형 리터럴
| 표현 | 데이터 타입 |
|---|---|
| 10 | int |
| 0x10 | 16진수 int |
| 0b10 | 2진수 int |
| 10L | long |
| 10UL | Unsigned Long |
- 부동소수점형 리터럴
| 표현 | 데이터 타입 |
|---|---|
| 3.14 | double |
| 3.14f | float |
| 3.14m | decimal |
- 문자형 리터럴
| 표현 | 데이터 타입 |
|---|---|
| ’A’ | char |
| ’\n’ | 개행 문자 |
| ’\u0022’ | 유니코드 문자 |
변수
- 선언
자료형 변수명;- 초기화
변수명 = 값;- 선언 및 초기화
자료형 변수명 = 값;// 한 번에 여러 변수를 같은 값으로 초기화
자료형 변수명1 = 변수형2 = 변수형3 = 값;-
변수명 규칙
- C#에서 이미 예약된 단어들인 키워드를 포함하면 안된다.
- 첫 글자로 숫자를 쓸 수 없음.
- 알파벳, 언더스코어(_), 숫자를 사용할 수 있음.
- 대소문자를 구분함
-
코드 컨벤션 : 개발자끼리 약속한 코드 작성 규칙
- 식별자 표기법
- PascalCase : 클래스, 메소드, 프로퍼티 이름에서 사용. 첫글자 대문자, 뒤로도 대문자.
- camelCase : 변수명으로 사용. 첫 글자 소문자, 뒤로는 대문자.
- 대문자 약어 : ID, HTTP, FTP 등은 전체 문자가 대문자임
- 들여쓰기 : 탭 or 스페이스바 4칸으로 코드 블록을 들여씀
- 중괄호 위치 : 항상 새 줄에서 시작
- 빈 줄 사용 : 관련 없는 코드 사이에 빈 줄로 구분. 메소드, 클래스 등 블록 사이는 빈 줄 두 줄로 구분.
- 주석 : 주로 한 줄 주석 사용. 여러 줄 주석 쓸 때에는 /* 를 빈 줄에서 시작해서 */ 도 빈 줄에서 끝냄
- 식별자 표기법
-
형변환 (casting)
- 자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하는 것.
- 명시적 형변환 : (자료형) 형식으로 앞에 붙여 사용하는 것.
- 암시적 형변환 : 작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우 알아서 수행됨.
byte num1 = 10;
int num2 = num1; // byte -> int 암시적으로 형변환참고 : 정수형과 부동소수점형 간의 연산을 수행하는 경우 그 결과는 부동소수점형으로 변환됨.
입력
- Console.ReadLine() : 한 줄 입력 받음. 반환값은 String
- string.Split(’ ’) : 문자열을 구분하여 배열로 반환. 매개변수는 구분자
var
- C# 3.0부터 추가된 기능
- var 키워드를 사용하면 초기화하려는 값의 자료형에 따라 변수의 자료형이 결정됨.
var num = 10; // num = int
var name = "hyerim"; // name = string
var pi = 3.141592; // pi = double- 변수를 선언하는 시점에서 변수의 자료형을 정확히 알 수 없는 경우에 유용하게 사용할 수 있음
연산자
- 산술 연산자 : 숫자를 대상으로 사용되는 연산자
| 연산자 | 설명 |
|---|---|
| + | 덧셈 |
| - | 뺄셈 |
| * | 곱셈 |
| / | 나눗셈 |
| % | 나머지 |
- 관계 연산자 : 두 값을 비교해 True 또는 False로 결과가 나오는 연산자
| 연산자 | 설명 |
|---|---|
| == | 같음 |
| != | 다름 |
| > | 큼 |
| < | 작음 |
| >= | 크거나 같음 |
| ⇐ | 작거나 같음 |
- 논리 연산자 : 비교하는 대상이 True 또는 False
| 연산자 | 설명 |
|---|---|
| && | 논리곱(AND) |
| || | 논리합(OR) |
| ! | 논리부정(NOT) |
- 비트 연산자 : 데이터를 비트 단위로 연산함
| 연산자 | 설명 |
|---|---|
| & (AND) | 두 비트 값이 모두 1일 때 1을 반환 |
| (OR) | 두 비트 값 중 하나라도 1일 때 1을 반환 |
| ^ (XOR) | 두 비트 값이 서로 다를 때 1을 반환 |
| ~ (NOT) | 비트 값의 보수(complement)를 반환 |
| << (왼쪽 시프트) | 비트를 왼쪽으로 이동 |
| >> (오른쪽 시프트) | 비트를 오른쪽으로 이동 |
- 복합 대입 연산자 : 할당을 하는 대입 연산자에 산술 연산자를 더해 동시에 수행
| 연산자 | 예시 | 설명 |
|---|---|---|
| += | x += y; | x = x + y; |
| -= | x -= y; | x = x - y; |
| *= | x *= y; | x = x * y; |
| /= | x /= y; | x = x / y; |
| %= | x %= y; | x = x % y; |
- 증감 연산자 : 변수의 값을 1 증가시키거나 감소시킴
| 연산자 | 설명 |
|---|---|
| ++ | 1 증가 |
| — | 1 감소 |
- 연산자 우선순위
- 괄호 ()
- 단항 연산자(++, —, +, -, ! )
- 산술 연산자(*, /, %, +, -)
- 시프트 연산자(<<, >>)
- 관계 연산자(<, >, ⇐, >=, ==, !=)
- 논리 연산자(&&, ||)
- 할당 연산자(=, +=, -=, *=, /= )
문자열 처리
- 문자열 생성
string str1 = "Hello World"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 다섯 번 쓴 문자열 생성- 문자열 연결
- 무겁기 때문에, +로 연결하는 것은 비추천
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2; // + 연산자로 연결- 문자열 분할
string str = "Hello World";
string[] words = str.Split(' '); // 공백을 기준으로 분할하여 문자열 배열에 저장- 문자열 검색
string str = "Hello, World!";
int index = str.IndexOf("World"); // 첫 번째로 등장하는 위치의 인덱스를 반환- 문자열 대체
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");- 문자열을 숫자로 변환
string str = "123";
int num = int.Parse(str);- 숫자를 문자열로 변환
int num = 123;
string str = num.ToString();- 문자열 값 비교
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2- 문자열 대소 비교
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2); // 사전식 비교.
// str1 < str2 = 0 미만
// str1 == str2 = 0
// str1 > str2 = 0 초과- 문자열 형식화
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);- 문자열 보간
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";내일 학습 할 것은 무엇인지
조건문과 반복문 학습