1. Snake 게임 만들기
SnakeGame | Notion
콘솔 기반의 간단한 뱀 게임을 구현. 기본적인 동작 방식은 아래와 같다
stitch-wallet-120.notion.site
GitHub - JeongEunJi1127/SnakeGame: 콘솔 기반의 간단한 뱀 게임
콘솔 기반의 간단한 뱀 게임. Contribute to JeongEunJi1127/SnakeGame development by creating an account on GitHub.
github.com
2. 블랙잭 게임 만들기
BlackJackGame | Notion
콘솔 기반의 간단한 뱀 게임을 구현.
stitch-wallet-120.notion.site
3. 구조체 vs 클래스
- 구조체는 값 형식, 스택에 할당,복사될 때 값이 복사.
- 클래스는 참조 형식, 힙에 할당, 참조로 전달 -> 동적 할당!!!
- 구조체는 상속 X, 클래스는 단일 상속 & 다중 상속 가능.
- 구조체는 작은 크기의 데이터 저장이나 단순한 데이터 구조에 적합
클래스는 더 복잡한 객체를 표현하고 다양한 기능을 제공하기 위해 사용.
4. 상속
- 좋지 않은 상속
// 부모 클래스
public class Animal
{
public string Name { get; set; }
public int Age { get; set; }
public void Move()
{
Console.WriteLine("Animal is moving.");
}
}
// 자식 클래스
public class Dog : Animal
{
// 함수 재정의. 좋지 않은 방법
public void Move()
{
Console.WriteLine("Dog is moving.");
}
}
- Virtual 클래스 사용
- 부모 클래스에서 정의되고 자식 클래스에서 재정의할 수 있는 메서드 (재정의 안해도됨)
- 부모 클래스의 Move 함수를 public virtual void Move()로 선언
- Abstract 클래스 사용
- 객체화 불가능
- 구현부가 없는 메서드, 자식 클래스에서 반드시 구현되어야 함. (강제성!!)
// 추상 클래스
abstract class Shape
{
public abstract void Draw();
}
// 자식 클래스
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle");
}
}
5. C# 제너릭
- 다양한 자료형에 대응 가능
- C#에서는 <T>로 제너릭을 선언
- 선언 시점이 아닌 사용 시점에 결정 -> <T>대신 구체적인 자료형을 넣어 사용
(ex) <Int>
- 두 개의 서로 다른 자료형을 사용할 때 유용
6. C# out, ref
- 메서드에서 매개변수를 전달할 때 사용
- out 키워드는 메서드에서 반환 값을 매개변수로 전달하는 경우에 사용
-> 값을 무조건 대입해야함 -> 해당 변수의 이전 값이 유지되지 않으므로 주의
- ref 키워드는 메서드에서 매개변수를 수정하여 원래 값에 영향을 주는 경우에 사용
-> 값을 무조건 대입하지 않아도 됨.
- 메서드에서 값을 반환 X, 매개변수를 이용하여 값을 전달 O.
7. 개인 과제 진행
- 필수요구사항 구현 완료
SpartaDungeon - 개인 프로젝트 | Notion
스파르타 던전 (Text 게임) 만들기
'Study > C#' 카테고리의 다른 글
[C#] Internal Class (0) | 2024.04.29 |
---|---|
[C#] 데이터 저장 (2) | 2024.04.25 |
[C#] 인터페이스 (2) | 2024.04.24 |
[C#] Random, Collection, 메서드 (0) | 2024.04.22 |