TIL_231110

Z_제트·2023년 11월 10일
0

TODAY I LEARNED

목록 보기
10/88

to do_오늘 할 일

(개인과제)

  • 캐릭터 정보를 Console.WriteLine 으로 하나하나 작성하지 말고 다른 방법 써보기
  • 장착 관리 (+상태 보기와 정보 연동시키기)
  • (욕심난다 !) 아이템 정보를 class / struct 로 활용해보기
  • (욕심난다 !) 아이템 정보를 배열로 관리하기

retro_오늘 한 일(회고)

✅ 캐릭터 정보를 Console.WriteLine 으로 하나하나 작성하지 말고 다른 방법 써보기

→ 캐릭터 정보를 class 에 정리해서 문자열 보간을 통해 정보 작성 !

⬜ 장착 관리 (+상태 보기와 정보 연동시키기)

이건 아직 무리...ㅎ.ㅎ.. too hard..
해설영상 올라오면 체크하자 !

✅ 아이템 정보를 class / struct 로 활용해보기

Item.cs 에 요렇게 아이템 class 를 만들어서

namespace DunDunDungeon
{

    internal partial class Program
    {
        class Item
        {
            public string Name { get; }
            public string Effect { get; }
            public string Description { get; }

            public Item(string newName, string newEffect, string newDescription)
            {
                Name = newName;
                Effect = newEffect;
                Description = newDescription;
            }


        }
    }
}

Program.cs 에서 아이템 목록 보여주는 표를 만들고 (w/ 패키지의 힘)

// 아이템 목록
static void ShowItem()
{
    var table = new ConsoleTable("아이템 이름", "효과", "설명");
    table.AddRow(muIronArmor.Name, muIronArmor.Effect, muIronArmor.Description);
    table.AddRow(oldSword.Name, oldSword.Effect, oldSword.Description);
    table.Write(Format.Alternative);
}

아이템 설명 적어주고

namespace DunDunDungeon
{

    internal partial class Program
    {

        private static Character player1;
        private static Item muIronArmor;
        private static Item oldSword;


        static void Main(string[] args)
        {


            GameDataSetting();
            ShowGameStartScene();
            ShowSpartaVill();



        }

        static void GameDataSetting()
        {
            // 캐릭터 설정
            player1 = new Character("너의이름은", 01, "전사", 10, 5, 100, 1500);

            // 아이템 설명
            muIronArmor = new Item("무쇠갑옷", "방어력 +5", "무쇠로 만들어져 튼튼한 갑옷입니다.");
            oldSword = new Item("낡은 검", "공격력 +2", "쉽게 볼 수 있는 낡은 검입니다.");
        }

console 창에서 잘 보여지나 출력해보니 good ~!

이 부분 성공해내려고
거의 하루종일 class 랑 프로퍼티 공부를 엄청나게 한 것 같다.
🔥🤟

⬜ 아이템 정보를 배열로 관리하기

나에겐 아직 어려운 그대여..
and 뇌 과부하 + 금요일 버프..? 디버프 라고 해야하나..?
로 인한 집중도 하락 ^_^

이라는 핑계인듯 핑계아닌 핑계같은 핑계를 적어본다.

해설영상 올라오면 체크하자 !


VS 단축키 꿀팁🍯

ctrl + m + o = (class or 함수 etc) 접기
ctrl + m + l = ( " ) 펼치기


기 억 하 자 !

  • Console.ReadKey();
    누른 키 정보를 console 창에 표시.

    Console.ReadKey(true/false);
    true : console 창에 키 입력 안 보임
    false : 키 입력 보임

  • 구조체 struct vs. 클래스 class

    • 구조체와 클래스는 모두 사용자 정의 형식을 만드는 데 사용될 수 o.
    • 구조체는 값 형식, 스택에 할당되고 복사될 때 값이 복사된다.
    • 클래스는 참조 형식, 힙에 할당되고 참조로 전달되므로 성능 측면에서 다소 차이가 있다.
    • 구조체는 상속을 받을 수 x, 클래스는 단일 상속 & 다중 상속 가능.
    • 구조체는 작은 크기의 데이터 저장이나 단순한 데이터 구조에 적합
      클래스는 더 복잡한 객체를 표현하고 다양한 기능을 제공하기 위해 사용.
  • class 의 메서드는 보통 public,
    메서드 호출을 위해서는 class 의 인스턴스 생성해야 함 !

  • class 의 필드(fields)는 보통 private 접근 제한자를 사용하여 외부에서 직접적인 접근을 제한하고, 필요한 경우에는 프로퍼티를 통해 간접적으로 접근할 수 있도록 한다.

  • 프로퍼티(property) 는
    private 한 필드값을 외부에서 접근할 수 있게끔 중간 매개 역할.
    간접 접근.
    연결하고자 하는 변수와 동일한 데이터 타입 & 이름(대문자로 시작).
    get 은 프로퍼티 값 반환(read).
    set 은 프로퍼티 값 설정(write).
    자동 프로퍼티는 필드의 역할도 같이 진행한다.
    { get ; } → 읽기 전용.
    { set ; } → 쓰기 전용.

    getter 와 setter 이해하는 데 시간이 좀 걸렸는데
    공식사이트에서 언제 get 과 set 이 invoke 되는지 설명을 보니
    이전보다는 개념이 훨씬 더 와닿는 느낌 !
    휴 감사합니다 공식사이트 최고bb (_ _)


    + 실무에서는 프로퍼티 중에서 자동 프로퍼티를 주로 쓰거나 그냥 필드값을 설정하거나 다른 대체제(e.g. delegate, event 강의였나 어디선가 이름은 들어본 것 같은데 아직 뭔진 모르겠다...헷 ) 를 주로 사용한대요 !
    (꿀팁 감사합니다 튜터님🙏)


피할 수 없으면 즐겨야지 뭐 어쩌겠습니까 ~~!

다음 주도 열심히 달리기 위해
주말은 최선을 다해 쉽시다 ~~!

Happy Friday
&
Have a blessed weekend !
S2 🤎🥨

profile
trying to make the world a better place with a cool head and warm heart

0개의 댓글