6/22 C# 복습

심지태
∙∙조회 1
  • 6/22 C# 복습 C#에 대한 전체적인 복습. 잘 잊을만한 내용만 적어놓음 const 키워드 (상수) : 변하지 않는 고정값 const vs readonly

    const컴파일 시점에 고정되는 상수, 선언과 동시에 초기화를 해줘야함
    readonly객체 생성 후 값을 적재한 후 바뀌지 않는 필드

    배열 : 같은 타입의 값들을 연속된 메모리에 저장, 배열은 생성 후 크기 변경 불가 2차원 배열 : 행(Row)과 열(Column)이 있는 데이터 예시 int[,] map = new int[3, 4]; // 3행 4열

    • 또는 초기화와 함께:
    csharp
    int[,] map={{0,0,1,0},{0,2,0,0},{1,0,0,0}};
    
    

    접근

    csharp
    Console.WriteLine(map[1,1]);// 2 (1행 1열, 플레이어)Console.WriteLine(map[0,2]);// 1 (0행 2열, 벽)
    
    

    순회

    for (int row = 0; row < map.GetLength(0); row++) {     for (int col = 0; col < map.GetLength(1); col++)     {         Console.Write(map[row, col]);         Console.Write(" ");     }     Console.WriteLine(); } 인덱스 : 배열/리스트에서 몇 번째 요소인지를 나타내는 번호 정수 나눗셈 주의 정수 / 정수 = 정수(소수점 버림). 소수점이 필요하면 한쪽을 float으로 변환해야 합니다. Math 클래스 자주 쓰는 메서드 Math.Max(damage, 1);       // 최소 1 보장 (int)Math.Round(distance); // 반올림 int)Math.Floor(rawHp); // 내림  ref와 out ref: 함수 안에서 외부 변수를 직접 수정

    • 메서드를 호출하기 전에 인수를 초기화해야 한다.
    • 매서드는 매개 변수에 새 값을 할당할 수 있으나 강제성은 없다
    • ref 매개 변수의 인수에는 ref 한정자가 포함되어야 한다. out: 함수가 값을 만들어서 내보냄
    • 메서드를 호출하기 전에 인수를 초기화할 필요가 없다
    • 매서드는 매개 변수에 값을 할당해야 한다.
    • out 매개 변수의 인수에는 out 한정자가 포함되어야 한다.

    좋은 함수 설계

    • 한 함수는 한 가지 일만 합니다.
    • 함수 이름은 동사로 시작합니다. CalculateDamage, PrintStatus, IsAlive
    • 매개변수는 3개 이하가 읽기 좋습니다. 그 이상이면 구조체/클래스로 묶는 것을 고려합니다.
    • 함수 길이는 화면 한 페이지 이내가 이상적입니다. Struct는 값 형식입니다. 대입하면 값 전체가 복사됩니다. 이것은 클래스(참조 형식)와 가장 큰 차이입니다. 객체지향 언어의 특징
    순서학습 내용
    캡슐화객체 내부 상태를 보호하는 방법을 이해합니다.
    상속공통 기능을 상위 클래스로 올립니다.
    다형성같은 호출이 객체마다 다르게 동작하는 흐름을 확인합니다.
    구조 비교중복 코드와 확장 가능한 구조를 비교합니다.

    추상 클래스

    직접 인스턴스를 만들 수 없는 클래스. 자식이 반드시 구현해야 할 메서드를 강제함. 설계도 클래스라고 생각하면 됨

    Generic (일반화)

    Generic은 타입을 유연하게 만들고 인터페이스는 반드시 구현해야 할 약속을 정의합니다. 총 정리 파일 CSharp_핵심요약카드.pdf CSharp_QA퀴즈시트.docx