내일배움캠프/TIL

[내배캠][Unity6기][TIL] C# 문법 종합 강의 1주차

binary는 호남선 2024. 9. 19. 23:12

※ 앞서 작성한 내용과 중복되거나 이미 잘 알고있는 내용은 제외,

새롭게 알게 되었거나 중요하고 익숙하지 않은 것들 위주로 작성되었습니다.

Preview

- 전역 using 설정
- IntelliSense 재호출
- char는 2byte
- 리터럴
- 한번에 여러 개의 변수 초기화
- 암시적 형변환
- 한줄에 여러 값 입력받기
- 연산자 우선 순위 이해하기
- 문자열 처리 기능 및 메서드
-- 문자열 생성
-- 문자열 대소 비교


전역 using 설정

- 자주 사용하는 namespace를 모아 미리 프로젝트에 포함시키는 설정

- [ 프로젝트 ] > [ 속성 ] 으로 들어가서 설정 가능

IntelliSense 재호출

Ctrl + Space

- 코드를 작성하다 오타나 백스페이스로 인해 IntelliSense가 꺼졌을 경우 다시 호출 가능

(이걸 몇년만에 알다니...)

char는 2byte

- C++ 에서는 일반적으로 char(문자형)이라고 하면 1byte, 혼동하지 않도록 주의

- C#에서는 유니코드 문자이므로 16bit(2byte)

리터럴

- 소스 코드의 고정된 값을 나타내는 표기법

- 소스 코드에 하드 코딩된 값으로 쉽게 식별하기 위해 특별한 표기 방식 사용

// 정수형
var inum1 = 0b10;   // 2진수 int(10진수로 2)
var inum2 = 0x10;   // 16진수 int(10진수로 16)

// 실수형
var fnum1 = 9.19;   // double
var fnum2 = 3.14f;   // float

// 문자형과 문자열
var ch = 'A';   // char
var unich = '\u0022';   // 유니코드 문자(큰따옴표)
var str = "Hello";  // string

참고 : https://ko.wikipedia.org/wiki/%EB%A6%AC%ED%84%B0%EB%9F%B4

https://blockdmask.tistory.com/355

한번에 여러 개의 변수 초기화

int a, b, c = 10;   // a : 0, b : 0, c : 10
a = b = c = 10;   // a : 10, b : 10, c : 10

int x = 10, y = 20, z = 30; // x : 10, y : 20, z : 30

암시적 형변환

- 데이터 손실이 없는 안전한 형변환

1) 작은 데이터 타입 ->  큰 데이터 타입

2) 리터럴 값 대입 (컴파일러가 자동 타입 추론하여 암시적으로 형변환)

3) 정수형과 부동소수점형 간 연산 수행 (더 큰 자료형으로 변환됨)

// 작은 자료형 -> 큰 자료형
byte num1 = 10;
int num2 = num1;

// 리터럴 대입
float num3 = 2;

// 정수형과 부동소수점 간 연산
num3 = 3.14f;
var result = num2 + num3	// float형으로 저장

한줄에 여러 값 입력받기

Console.Write("Enter two numbers: ");
string input = Console.ReadLine();    // 숫자 2개를 공백으로 구분하여 입력받기

string[] numbers = input.Split(' ');  // 문자열을 공백으로 구분하여 배열로 만듦
int num1 = int.Parse(numbers[0]);     // 첫 번째 값을 정수로 변환하여 저장
int num2 = int.Parse(numbers[1]);     // 두 번째 값을 정수로 변환하여 저장

연산자 우선 순위 이해하기

[ C# 연산자 우선 순위 ]

  1. 괄호 (): 가장 높은 우선 순위, 헷갈리면 괄호로 묶어서 순서 지정하기
  2. 단항 연산자: ++, --, +, -, !
  3. 산술 연산자: *, /, %, +, -
  4. 시프트 연산자: <<, >>
  5. 관계 연산자: <, >, <=, >=, ==, !=
  6. 논리 연산자: &&, ||)
  7. 할당 연산자: =, +=, -=, *=, /=*

* 외우려 하지말고 이해하기!

=>  산술’ 연산과 ‘비트’ 연산의 결과를 ‘비교’한 후 그 ‘논리’를 ‘대입’한다

참고 : https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/

https://wikidocs.net/231628

문자열 처리 기능 및 메서드

문자열 생성

string str = new string('o', 5); // 문자 'o'를 5개로 구성된 문자열 생성

문자열 대소 비교

- 아무 옵션도 설정하지 않으면 사전식으로 비교

- 첫번째 문자열이 두번째 문자열보다 크면(사전식으로 뒤에 오면) 1, 작으면 -1, 같으면 0을 반환

- 대소문자를 구분하며, 대문자가 소문자보다 작음

string str1 = "Apple";
string str2 = "Banana";
string str3 = "Apple";

int compare = string.Compare(str1, str2);   // -1
compare = string.Compare(str2, str1);       // 1
compare = string.Compare(str1, str3);       // 0