[C#][TIL][내일배움캠프 2-1]

이훈·2024년 9월 19일

연휴가 끝났다.
처음부터 이렇게 맛있는 걸 먹어서 큰일이다. 다음에 빨간날 언제지

1. 다양한 단축키(ctrl k + c, u, f / tab / ctrl + space)

옛날에 강의에서 들었던 여러 줄 주석 처리(ctrl + k + c)와
그 해제 방법(ctrl + k + u),
이 외에도 자동 줄 맞춤(ctrl + k + f),
자동 완성 or 사용가능한 문법 찾기(tab, ctrl + space)
매번 있다는 건 알고 있지만 사용하려고 하면 단축키를 까먹는다.
(***그리고 ctrl을 누르고 있어야 한다.)

2 .net 프레임 워크와 라이브러리

.net 이란게 개발을 편하게 해주는 프레임 워크라는 것 밖에 못 찾겠다.
그래서 프레임 워크라는 단어와 항상 따라 다니는 라이브러리 둘의 개념을 다시 한번 정리해 보려고 한다. (음~ 완벽하게 이해했어)

프레임 워크란 .net 처럼 정해진 형태에 맞춰서 사용자가 값만 변경해주는 것이다. 형태가 정해져있기 때문에 그 형태를 벗어나면 오류가 발생할 수 있고 형태를 바꿀 수는 없다.

라이브러리란 지금 우리가 만든 단순한 함수나 코드 같이 특정 기능을 수행하는 코드의 모음이다. 바로 알 수 있듯이 라이브러리는 정해진 것이 없다. 내가 원하는 반환값, 참조값, 호출하는 값, 등을 자신이 원하는대로 만들고 사용하는 것이다.

한마디로 배달음식과 직접하는 요리이다.

배달음식(프레임워크)은 정해진 범위 내에서 기호에 맞춰 변경할 수 있다.
원하는 메뉴가 있다면 빠르고 맛있게 먹을 수 있지만, 내가 원하는 메뉴나 특정 사이드 메뉴가 없다면 아무것도 못 하고 아쉬워 할 수 밖에 없다.
(피자집에 피자가 맛있지 냉면이 맛있냐)
비록, 직접하는 요리(라이브러리)가 귀찮고 배달요리에 비해서 부족해 보일 수도 있지만, 자신이 원하는 것을 만들 수 있고 그때 그때 자신에 기호에 맞게 뭔가를 추가 할 수 있다.
게다가 하면 할 수록 느는 것까지 완벽하다.

3. 그 외 기타 등 등

  1. 문자열 보간법(포메팅?)
string name = "dlgns";
int year = 1997;

Console.WriteLine(name+year); //1
Console.WriteLine("{0}{1}",name, year); //2
Console.WriteLine($"{num1}{num2}"); //3

출력 결과 : dlgns1997

셋 다 출력이 같다면 무엇이 다를까?
1번은 2,3번과 달리 여러 번의 호출이 발생한다. 문자열을 두번 호출하는 것이다.
단순히 붙이는 것이 아니라 중간에 다른 문자열이나 뛰어쓰기 표시를 넣으려고 한다면 더 많은 부하를 발생할 수도 있다.
그러니 단순히 두 문자열을 붙이더라도 2,3번의 사용에 익숙해져야 한다.

[의문] Console.Writeline 에 하나의 문자열을 넣을 때,
왜 {}는 오류가 나고 {0}만 되는가? (어차피 하난데 {0}으로 지정해줘야하나?)

해줘야 한다.
오늘 2. 프레임워크와 라이브러리 에서 적은 내용을 생각하면 된다.
정해진 프레임 워크에서 변수를 받을 때, {0},{1},... 과 같은 유효한 형식로만 입력을 받기 때문에, 유효한 방식이 아닌 {}를 입력받는다면, 바로 오류가 나는 것이다.

  1. 3항 연산자

if 문을 멋지게 한 줄로 표현한다고 생각하면 좋다.

(if) ? (true) : (else);
(조건문) ? (참) : (거짓);

코드를 더 간단하게 만들 수 있다.

  1. switch case문은 case 가 없으면 default로 간다.

그렇기 때문에 case를 빈 줄로 만들더라도 만들어야 한다.

switch(n)
{
	case 0:
    case 1:
    case 2: 
    	(원하는 수행);
        break;
    default:
}

워 같이 작성해야 0,1이 default로 빠지는 상황을 방지 할 수 있다.

  1. for 문 안에서 선언한 변수 i 유지성 (변수 스코핑)

for 구문 안에서 생성된 변수는 for 구문이 끝나면 사라진다. 이게 파이선에서는 사용이 가능했던 기억이 있어서 검색을 해보니,
역시 파이선 답게 파이선에서만 가능한 일 이었다.
이래서 처음 언어를 배울때 파이선으로 배우면 안된다는 것 이다.

  1. random.next 와 random.range 의 차이

Random().Next는 C#의 언어, (System.random)
Random.Range는 Unity의 언어이다. (UnityEngine.random)

  1. 다차원 배열 선언 방법 arr[,] / arr[,,]
profile
안녕하세요

0개의 댓글