2012-03-11 4 views
0

코드 다음 ASP.NET 페이지 클래스 (사용 리플렉터)에서 촬영되었다? 다음 기사는 RAISE EVENT가 있어야 함을 제안합니다 : http://msdn.microsoft.com/en-us/library/ms184583%28v=vs.90%29.aspx. 내가보고 기대 :.NET 사용자 정의 이벤트

Public Custom Event InitComplete As EventHandler 
     AddHandler(ByVal value As EventHandler) 
      MyBase.Events.AddHandler(Page.EventInitComplete, value) 
     End AddHandler 
     RemoveHandler(ByVal value As EventHandler) 
      MyBase.Events.RemoveHandler(Page.EventInitComplete, value) 
     End RemoveHandler 
     Raise Event 
     End Raise Event 
    End Event 

나는 이것이 아마 기본적인 질문 실현,하지만 사용자 정의 이벤트에 새로운 오전과 내가 예상했던 것보다 더 어려운 것으로 증명된다.

답변

0

나는 이전 질문에 대한 대답에서 다음과 같이 썼습니다. 즉, 이것은 Page이 VB로 작성되지 않았 음을 나타냅니다.

.NET 이벤트에는 접근자를 "올리기"할 필요가 없습니다. C#에는 raise 접근자를 지정하는 구문이 없습니다.

VB 그러나 입니다. 사용자 지정 이벤트가 필요합니다. 좋습니다. VB에서 사용자 지정 이벤트를 사용하여 생성 된 코드에는 모두 접근자가 있습니다. VB는 다른 언어에도 요구 사항을 강제 적용 할 수 없습니다. 따라서 액세스 권한이없는 이벤트를 가진 코드는 VB에서 직접적으로 동일하지 않습니다.

일분을 놓치지 마세요. 누군가가 Humbug라는 새로운 언어를 발명했다고 가정 해 봅시다. Humbug가 속성 에 항상 getter와 setter가있는이 있음을 지정하는 것이 가능할 것입니다. getter 또는 setter 만 사용하여 속성을 작성할 수 없습니다. 비록 언어가 속성의 한 부분만을 지정하는 코드와 상호 운용되어야하지만 IL을 대상으로하는 것은 좋습니다. VB 또는 C#에서 읽기 전용 (쓰기 전용, 드물 긴하지만) 이벤트가있는 코드는 이 아니기 때문에 Humbug에서을 나타낼 수 있습니다.

당신이 머리를 돌릴 수 있다면 이벤트와 액세서에 동일한 논리를 적용하기 만하면됩니다.

+0

아직도 내 질문에 대답 해 주셔서 감사합니다. 아마 나는 떠나서 내일 볼 필요가있다. Reflector를 사용하여 VB.NET에서 Page 클래스 코드를보고 있습니다. 맞춤 이벤트와 최종 이벤트 사이에 RAISE EVENT가없는 맞춤 이벤트가 있습니다. 질문에 게시 된 MSDN 기사에 사용자 지정 이벤트와 최종 이벤트 사이에 RAISE 이벤트가 있어야한다고 나와 있습니다. RAISE EVENT가없는 이유는 무엇입니까? – w0051977

+0

@ w0051977 : 어떻게 더 명확하게 말할 수 있을지 모르겠습니다. ** MSDN 기사에서 VB에 대해 이야기하고 있습니다. RaiseEvent는 VB에서만 필요합니다. 언어 별입니다. ** –

+0

이 질문은 VB.NET에 관한 것입니다. RAISE EVENT가 C#에서는 분명히 필요하지 않다고 말한 것으로부터 깨달았습니다. 나는 VB.NET 질문을하고있다. Reflector를 사용하여 Page 클래스를 열고 코드가 VB.NET에 나타납니다. InitComplete 및 다른 이벤트에 대한 RAISE EVENT는 없습니다. 계속 도움을 주셔서 다시 한 번 감사드립니다. 귀하의 웹 사이트에서 귀하의 도서 중 하나를 일찍 찾고있었습니다. – w0051977

관련 문제