C#
-
예외 처리C# 2023. 8. 24. 20:05
I. 예외 처리 : 예외 상황을 처리하는 메커니즘. try { "실행 코드" } catch ("예외 타입" "예외 타입 객체") { "예외 타입" 에 대한 예외 처리 코드" } finally { "항상 실행되는 코드" } 예외 (Exception) : 프로그램 실행 중에 발생하는 예기치 않은 상황 : 프로그램의 정상적인 흐름을 방해하고 오류를 야기함. 예외처리의 필요성 : 오류 상황을 적절히 처리하고, 프로그램의 실행을 계속할 수 있음. : 프로그램의 안정성을 높이고 디버깅을 용이하게 함. catch 블록 : 위에서부터 순서대로 실행. : 상속 관계에 있는 경우 상위 클래스의 예외 타입의 catch 블록이 먼저 실행. try { int result = 10 / 0; // 실행하려고 하는 코드 Consol..
-
인터페이스와 열거형C# 2023. 8. 24. 19:27
I. 다중 상속 : C# 에서는 이하의 이유로 클래스 간의 다중상속을 지원하지 않는다. 죽음의 다이아몬드 (Diamond Problem) : 왼쪽 그림과 같은 상속관계는 오른쪽 상속관계와도 같다. : D 클래스에서 A 클래스의 메서드를 사용해야 할 때, 이름의 충돌이 일어날 수 있다. A를 상속받은 B의 것을 사용해야하는가? A를 상속받은 C의 것을 사용해야하는가? : 또한 다음과 같이 B와 C가 메서드 Method1()을 오버라이드 한다고 하면, class A { } class B : A { public virtual void Method1() { Console.WriteLine("You are groot"); } } class C : A { public virtual void Method1() { C..
-
텍스트 던전 콘솔로 구현하기 - 작업중 학습(2)C# 2023. 8. 23. 20:34
Case 2. 하나의 스크립트를 다루면 너무 코드가 길어짐. : 같은 네임스페이스를 사용한다면, 다른 폴더에 있어도 해당 클래스를 가져올 수 있다. 네임스페이스 (NameSpace) : 내부 식별자(형식, 함수, 변수 등의 이름)에 범위를 제공하는 선언적 영역 분류 1. 내장된 네임스페이스 : System : 네임스페이스 : Console : 네임스페이스의 클래스. 2. 사용자가 정의하는 네임스페이스 : 고유한 네임스페이스를 선언하면, 클래스 및 메서드 이름의 범위를 제어할 수 있음. namespace SampleNamespace { class SampleClass { public void SampleMethod() { System.Console.WriteLine( "SampleMethod inside ..
-
스네이크 게임 만들기 (수정예정)C# 2023. 8. 21. 20:50
I. 예제 코드 및 작업물 namespace SnakeGame { internal class Program { // 뱀은 매턴마다 자신의 앞으로 이동합니다. // 사용자는 방향키를 이용하여 뱀의 이동 방향을 제어할 수 있습니다. // 뱀은 맵에 무작위로 생성되는 음식을 먹을 수 있습니다. // 뱀은 벽이나 자신의 몸에 부딪히면 게임이 끝나고 'Game Over' 메시지가 뜹니다. // Main 함수에서 게임을 제어하는 코드를 작성합니다 : 뱀의 이동, 음식 먹기, 게임 오버 조건 확인 등을 주기적으로 수행합니다. static void Main(string[] args) { } } // Snake 클래스를 만듭니다 : 뱀의 상태와 이동, 음식 먹기, 자신의 몸에 부딪혔는지 확인 등의 기능을 담당합니다. /..
-
제네릭C# 2023. 8. 18. 14:50
I. 제네릭 타입 (Generic Type) : 클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능. : 데이터 타입을 확정하지 않고, 데이터 타입 자체를 타입 파라미터로 받아들이도록 클래스를 정의함. 메서드 오버로딩을 통하여, 동일한 메서드에 다양한 타입과 수의 매개변수를 추가할 수 있다고 학습했었다.. 매개변수의 수가 고정되어 있다고 했을 때, 메서드 오버로딩을 통해 구현했던 것을 제네릭 타입으로 구현해보겠다. 메서드 오버로딩 public class Calculator { public int Add(int a, int b) // Method OverLoading { return a + b; } public float Add(float a, float b) // Method OverLoa..
-
상속과 다형성C# 2023. 8. 17. 21:22
I. 상속 : 기존의 클래스를 확장(부모 클래스)하거나, 새로운 클래스(자식 클래스)를 생성하는 것 public class Animal { public string Name { get; set; } public int Age { get; set; } public Animal(string name, int age) { Name = name; Age = age; } public void Eat() { Console.WriteLine("Animal is eating."); } public void Sleep() { Console.WriteLine("Animal is sleeping."); } } // 자식 클래스 public class Dog : Animal { public string DogBreed { g..
-
클래스와 객체C# 2023. 8. 17. 17:55
I. OOP의 특징 객체 지향 프로그래밍 (OOP) 객체 지향 프로그래밍 (Object-Oriented Programming) : 컴퓨터 프로그램을 여러 명령어의 목록으로 보지 않고 여러 개의 독립된 객체들의 집합으로 파악하는 프로그래밍 기법. I. 객체, 클래스, 인스턴스 temp-franc.tistory.com !! 정리 OOP : 컴퓨터 프로그램을 여러 개의 독립된 객체들의 집합으로 파악하는 프로그래밍 기법. : 객체들이 서로 유기적으로 상호작용하여 기능을 구현한다. 1. 캡슐화 : 각각의 필요한 기능을 구현하고, 기능한 구현을 또 그룹화할 수 있음. : 그룹화를 통해 외부의 접근을 제어하고 데이터를 보호한다. 2. 상속 : 기존의 클래스를 확장해 새로운 클래스를 만들 수 있음. : 새로운 클래스에..
-
틱택토 게임 콘솔로 구현하기C# 2023. 8. 17. 01:34
I. 개요 틱택토 게임을 콘솔로 구현하기 위해 메서드, 컬렉션, 조건문과 반복문에서 학습한 것을 활용할 것이다. 조건문과 반복문 I. 조건문 : 주어진 조건식의 결과에 따라 프로그램의 제어 흐름을 변경하는 제어문 1. if 문 if (조건) { } int playerScore = 80; if (playerScore >= 70) // !! playerScore 은 70보다 크므로, 실행문이 실행이 됨. { Co temp-franc.tistory.com 컬렉션 컬렉션 : 동일 타입의 객체(데이터)를 여러 개 보관할 수 있는 클래스들의 모음. : 배열을 제외한 나머지 컬렉션은 주로, 제네릭 클래스를 활용 I. 배열 : 동일한 자료형의 값들이 고정된 크기에 temp-franc.tistory.com 메서드 I. ..