delegate 4

#057_닷넷(.NET)_.Net Framework 기본 - 대리자 & 이벤트 & 람다 정리

안녕하세요 삽잡이입니다. 이번 시간에는 대리자, 이벤트, 람다에 대해서 정리해보려고합니다.가뜩이나 글만 주구장창 쓰는데,오늘은 더욱 글이 흘러 넘칠 것 같군요... 시작합니다! '대리자, 이벤트, 람다'이 모두는 모두 delegate에 관한 이야기입니다. 대리자는 메서드를 가리키는 객체를 말하지요.그러면 왜 메서드를 가리킬까요? 그 객체를 가지고 메서드를 호출하기 위해서입니다.아무튼... 대리자는 함수를 가리키는 객체를 만드는 문법입니다.그리고 그 객체를 함수로 호출하는 문법이지요. 대리자는 이미 하나의 타입으로 자리를 잡았습니다.그래서 대리자는 가장 많이 쓰이는 대리자로써 라는 굉장히 중요한 핸들러로 만들어져있지요.즉, 이런 delegate가 BCL에 이미 만들어져있다는 것입니다. 그래서 delegat..

#054_닷넷(.NET)_.Net Framework 기본 - 익명메서드(Anonymous Method)

안녕하세요 삽잡이입니다. 이번 시간에는 지난, 지지난 시간에 이어서 delegate의 연장선인 익명 메서드에 대해서 알아보겠습니다. 익명 메서드란, 말 그대로 '이름 없는 메서드'입니다.모든 메서드에는 이름이 있어야되지 않습니까? 메서드의 이름을 통해 메서드를 호출할 수 있었기 때문입니다. 그런데, 이름 없이도 호출이 되는 경우가 있습니다.이 때는 바로 '이벤트의 핸들러'일 때입니다. 왜 이벤트 핸들러일 경우 메서드에 이름이 없어도 될까요?굳이 메서드로 만들고 핸들러로 연결 시키는 것이 아니라, 이름이 없으면 행동만 있으면 되기 때문에즉, 어떻게 할 것인지에 대해서 절차만 정의 되있으면 되기 때문입니다. 이벤트는 어떤 이벤트가 발생하면 메서드를 호출해줍니다.그런데, 함수 지정할 필요 없이 이벤트가 발생하..

#053_닷넷(.NET)_.Net Framework 기본 - 이벤트(Event)

안녕하세요 삽잡이입니다. 이번 시간에는 delegate에 이어 event에 대해서 알아보려고합니다. delegate는 목적이 Callback인지 아닌지를 구분해야하니 헷갈리는 경우가 있습니다.즉, delegate는 여러 관점에서 쓰이기 때문에 사용자가 직접 구분해야한다는 것입니다. 그런데, 이벤트를 사용하게 되면 무조건 Callback임을 알 수 있습니다.이벤트는 delegate를 등에 엎고 만들어졌습니다. 이벤트는 이렇게 만들어집니다. 그런데, 여기서 event 키워드를 가리면? 대리자가 됩니다. 하지만, event를 붙이게 되면 그 때서야 이제 event라고 불린다 이겁니다. 또한, 접근 권한이 public입니다.왜냐, 대리자라면 private이어야합니다. 왜냐, 필드이기 때문입니다.그런데, 이벤트는..

#052_닷넷(.NET)_.Net Framework 기본 - 대리자(delegate)

안녕하세요 삽잡이입니다. 이번 시간에는 대리자에 대해서 알아보려고합니다. 대리자는 우선 다섯가지 형식중 하나의 형식입니다.똑같은 클래스 형식이지만 중요하니 떼어뒀지요. 이 대리자의 목적은 '내가 원하는 메서드를 가리키고, 이 객체로 호출을 하는 것이 목적입니다.'즉, 내가 원하는 메서드가 있다면 그 메서드를 가리키고,그 메서드를 delegate로 호출하는 것이 목적이지요.좀 더 정확하게 말하자면 '메서드 처럼 동작하는 객체'를 만들어내는 것이 delegate 의 목적입니다. 이와 비슷한 개념으로는 C의 함수 포인터 ,C++의 Functor가 있습니다. C, C++, C#에 이런 기능들이 있는 것은'함수 처럼 동작하는 어떤 것'을 만들어보자는 것이며, 이 어떤 것이 객체지향에서는 '객체'라고 부르는 것이지..