• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

TextRPG2 강의 질문입니다

23.01.31 01:01 작성 조회수 284

1

비전공자가 공부중인데 너무 기초적인 질문인것같지만

혼자하다보니 헷갈려 질문남깁니다.

static 함수가 아닌경우 함수 호출을하려면 객체를 생성후

호출을 해야한다고 알고있습니다 .

메인함수에서 Game game = new Game();

으로 game 객체 생성 후 game.Process(); 함수를

호출하는것은 이해가 가는데 Game 클래스 내에서

ProcessField()등 다른 함수들을 호출하는 동안은 game.을

작성하지 않고 호출하는데

같은 클래스에서 함수호출은 game.과 같이 객체 이름을

따로 작성하지 않아도 되는건가요?

그냥 되나보다 생각하려다 확실히 알고싶어 질문남깁니다.

며칠째 강의보고 RPG 혼자 만들보려는데 정말 어렵네요..

답변 1

답변을 작성해보세요.

0

C# 시리즈는 기본적으로 코딩 기초는 있지만
온라인 게임 제작을 안 해본 사람들을 대상으로 해서 (신입 프로그래머 교육 목적)
전체적으로 난이도가 높고 진도가 빠릅니다.
C# 기본 서적 한 권이랑 같이 보는 것이 도움이 될 수 있습니다.

그건 그렇고 정말 예리하고 저한테는 너무 당연하게 느껴져서 생각 못해본 질문을 주셨네요.
image이해하신대로 어떤 클래스의 멤버 함수를 외부에서 호출할 때는
[특정 객체]를 대상으로 멤버 함수를 호출하는 것이라
game.Start();와 같은 형태로 객체의 참조값이 필요합니다.
image그런데 동일 클래스 함수 내부에선 왜 그냥 호출이 가능할까요?
image
비밀은 이런 식으로 this.이 생략되어 있기 때문입니다.
this는 [내 자신의 참조값]을 의미하는데, 어차피 동일 클래스 내에서
함수->함수를 호출하면 자기 자신을 대상으로 호출하라는게
암암리에 들어가 있기 때문에 굳이 필요하지 않았던 것이죠.

결과적으로 [특정객체].멤버함수호출(); 은 변함이 없지만,
동일 클래스 내에서는 객체 생략 가능하다~ 정도로 기억하시면 되겠습니다.

너무 흥미로운 질문을 주셔서 감사하고
조만간 C# part1 리메이크를 기획중인데 이 내용도 잘 고려해서 포함을 시키도록 하겠습니다

ker0213님의 프로필

ker0213

질문자

2023.01.31

친절하고 자세한 설명 감사합니다.

Rookiss 님 강의가 정말 많은 도움이 되고있습니다.

앞으로도 저 포함 많은 분들이 도움 받을 수 있는 좋은 강의 만들어주시길 부탁드립니다!