• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

MenuArgs를 왜 상속하나요?

20.10.28 04:54 작성 조회수 141

0

1. 그냥 MenuArgs 생성자에 구현하면 될텐데

왜 MenuKeyPressArgs클래스를 만들고 MenuArgs를 상속해주나요?

2. public MenuKeyPressDelegate KeyPressDelegate { get; set; } //func(sender, args)

이 구문이 이해가 잘되지 않습니다.

public MenuKeyPressArgs(string menu_char)

        {

            MenuChar = menu_char;

        }

이것과 이름도 비슷하고 너무 헷갈립니다.

3. foreach(MenuItem item in MenuList)

            {

                if (item.MenuChar == retVal && item.KeyPressDelegate != null)

                    item.KeyPressDelegate(this, new MenuKeyPressArgs(retVal)); // delegate 호출

            }

이곳에서 선택한 번호보내는건 알겠는데 this가 이해가 가지않습니다.

4. 

public MenuItem() : this(null, null)

        {

        }

이부분도 왜 만드는지 이해가 가지않습니다.

답변 4

·

답변을 작성해보세요.

0

네. 이벤트 핸들러가 정형화 되어 있기 때문에 델리게이트보다 쉽고 많이 사용하게 될 겁니다. 즐공하세요^^

0

손기명님의 프로필

손기명

질문자

2020.11.11

네 다른 자료들을 보면서 파악했습니다.

몇가지 찾아도 메서드에서 this보내는건 자료를 봐도 헷갈렸는데요. msdn에 가보니 한글로 설명과

예제까지 있어서 이해를 하였습니다.~ 이벤트핸들러와 델리게이트가 어려워서 요즘은 강의를 더 보지않고

이 두가지를 계속 복습하고있습니다.  

0

그리고 제가 좀 바빠서 답변이 늦은 점 죄송합니다.

0

이벤트 핸들러는 조금 어려울 수도 있습니다. 아마도 인터넷의 참고 자료를 몇개 보다보면 쉽게 아실 수도 있습니다. this에 관해서는 지금 현재 동작하고 있는 내 클래스의 인스턴스를 의미합니다. 받는 쪽에서는 그 인스턴스가 가지고 있는 속성등을 알 수 있는데 대부분 sender라는 파라메터 명으로 받습니다. 그리고 내게 이벤트를 보낸 sender가 누군지 파악하는 목적으로 사용됩니다.

마지막 질문은 생성자가 파마메터를 받아야 하는 경우가 있는데 때로는 파라메터를 안주면서 생성자를 호출해야 하는 경우도 필요합니다. 그럴 때는 이렇게 사용할 수 있다는 예를 보이기 위해서 만든 것이죠.

혹시 잘 이해가 가지 않는다면 추가적으로 자세히 질문해 주시면 답변 드리겠습니다. 감사합니다.