전체 글(123)
-
생성자 안에 생성자
시도Player안에 public List skills = new List();라는 리스트를 만들고 거기에 Knight가 생성될때 스킬의 목록들이 들어가도록 Knight에서 생성자 안에 생성자를 만들어서 사용을 했다.코드public class Knight : Player { public Knight(string name) //유저 이름 { _Lv = 1; _Name = name; _Job = "Knight"; _Atk = 5; _Def = 10; _Hp = 100; _Mp = 50; SkillListAdd(new Knight("알파 스트라이크", "공격력 * 2 로 하나의 적..
2024.10.01 -
팩토리 메서드 수정2탄 (1탄에서 취소선을 사용한 이유가 들어가 있음)
팩토리 메서드 2탄시도Player에서 직업을 하위클래스로 두지말고 생성자에 넣어서 사용하는 방식으로 작성을 했다.Creature클래스public enum CreatureType { Player, Monster } public static Creature CreatureFactory(CreatureType creaturetype, Player.Type playertype, Monster.Type monstertype, string name) //타입과 사용자 이름 받기 { switch (creaturetype) { case CreatureType.Player: return new Player(playertype, name);..
2024.09.30 -
배열 값 오름차순 내림차순 사용방법 (LINQ 방법도 있음)
1. 오름차순int[] arr = { 3, 1, 4, 5, 2 }; Array.Sort(arr); // 결과: arr = { 1, 2, 3, 4, 5 } 2. 내림차순int[] arr = { 3, 1, 4, 5, 2 }; Array.Sort(arr); // 오름차순 정렬 Array.Reverse(arr); // 배열 뒤집기 // 결과: arr = { 5, 4, 3, 2, 1 } 3. LINQ를 이용한 간편한 내림차순 정렬 using System.Linq; int[] arr = { 3, 1, 4, 5, 2 }; arr = arr.OrderByDescending(x => x).ToArray(); // 결과: arr = { 5, 4, 3, 2, 1 }
2024.09.30 -
Git Hub 코드충돌
Git Hub에서 팀원분의 코드를 받아서 제 비쥬얼 스튜디오에서 실행을 해보니 밑에 사진과 같이 코드충돌이 났다고 해서 2개의 코드 중에서 팀원분들과 합의된 코드를 선택 후 병합 수락을 누르면 충돌이 해결이 된다.
2024.09.29 -
팩토리 메서드 1탄 팩토리 메서드 패턴 및 생성방법 과 사용 예시(잘못된 정보 취소선을 사용해서 수정)
개요팩토리 메서드 패턴에 대해 알아보겠습니다.내용 - 팩토리 메서드 패턴을 사용하는 이유원래 객체를 만들떄에는 필요한 클래스에서 new 키워드를 사용해서 객체를 생성하는데 이렇게 게 하면 구체적인 클래스에 의존하게 됩니다. 하지만 팩토리 메서드 패턴을 사용하면 객체 생성 로직을 한 곳에서 관리하니, 이런 문제를 해결할 수 있어요. 즉, 객체를 생성하는 책임을 팩토리 메서드에 위임하므로, 클래스마다 직접 객체를 생성할 필요가 없고, 한 곳에서 편리하게 객체를 관리하고 확장할 수 있습니다. 팩토리 메서드를 사용할때에는 또 다른 클래스를 생성한다고 생각하고 만드는 거다. 내가 팩토리 메서드 패턴을 사용하는 이유내가 팩토리 메서드 패턴을 선택한 이유는 Creature 클래스 상속을 통해서 몬스터나 플레이어나 ..
2024.09.28 -
c# 추상클래스, virtual과 abstract의 차이점
개요추상클래스에 대해 알아보겠습니다내용 - 추상클래스( abstract )- 추상클래스는 미완성된 클래스를 의미한다. 그뜻은 추상 메서드 즉 미완성된 메서드를 포함하고 있다는 뜻이다.- 추상클래스를 사용하는 이유는 부모클래스에서 미완성된 메서드가 있는 경우 자식이 미완성된 메서드를 재정의 할 수 있습니다.(미완성된 메서드 = 구현이 이 되지 않은 메서드)그래서 추상클래스는 구현된 메서드도 포함할 수 있고, 구현이 되지않은 메서드도 포함을 할 수가 있는 클래스이다.- 구현한 메서드를 virtual 키워드 를 사용하여 자식 클래스에서 재정의( override ) 할 수도 있다.- 추상 클래스 자체는 인스턴스화 할 수 없으며, 자식 클래스에서 반드시 재정의해야 합니다.- 추상클래스 앞에 적는 키워드는 abst..
2024.09.27