이벤트 및 null 참조를 위임합니다.

3355307

아래 코드에서 프로그램이 실행될 때 WorkPerformed항상 null입니다.

if (WorkPerformed != null)
            {
                WorkPerformed(hours, wt);
            } 

내가 대표단 및 이벤트를 배우면서 내가 잘못하고있는 곳에서 누구든지 나를 도울 수 있습니까?

namespace DelegateDemoApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DoSomethingElse();

        }


        public void DoSomethingElse()
        {
            DelegateTest dt = new DelegateTest();
            dt.DoWork(10, WorkType.Permanent);
        }

    }
}


namespace DelegateDemoApp
{
    public delegate void WorkPerformedHandler(int hours, WorkType workType);

    public enum WorkType
    {
        Permanent = 1,
        Contract = 2
    }
   public class DelegateTest
    {

        public event WorkPerformedHandler WorkPerformed;
        public event EventHandler WorkCompletedEvent;

        public void DoWork(int hours, WorkType wt)
        {

            for (int i = 0; i < hours; i++)
            {
                 //raise Progress Event 
                OnWorkPerformedProgress(hours , wt);

            }
        }

        protected virtual void OnWorkPerformedProgress(int hours, WorkType wt)
        {
           if (WorkPerformed != null)
            {
                WorkPerformed(hours, wt);
            }

        }
        public DelegateTest()
        {

        }


        public void Supervisor_WorkPerformed(int shiftHours, WorkType WType)
        {
            string.Format(" WorkHours {0} WorkType {1} ", shiftHours, WType);
        }
        public string Manager_WorkPerformed(int workHours, WorkType WType)
        {
            return string.Format (" WorkHours {0} WorkType {1} ", workHours, WType);
        }

    }
}
이안

null이 아니려면 이벤트를 구독해야합니다.

delegateTestInstance.WorkPerformed += new WorkPerformedHandler(OnWorkPerformed);

...

void OnWorkPerformed(...)
{
    ....
}

더 이상 처리하지 않으려면 항상 이벤트 구독을 취소하여 리소스를 정리해야합니다.

delegateTestInstance.WorkPerformed -= OnWorkPerformed;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

참조를 NULL로 위임

분류에서Dev

코드는 참조 형식 및 null 참조에 대한 정적 검사를 계약합니다.

분류에서Dev

참조 Object 및 이벤트시 변경

분류에서Dev

null이 아닌 속성은 null 또는 임시 값을 참조합니다.

분류에서Dev

Keydown 및 keypress 이벤트는 다른 keyCode를 제공합니다.

분류에서Dev

객체가있는 HashMap은 나중에 null 및 GC를 참조했습니다.

분류에서Dev

XDocument 자손이 null 참조를 던지고 있습니다.

분류에서Dev

이벤트 위임 및 if 문 내의 요소를 통해 반복

분류에서Dev

SwipeRefreshLayout 풀다운에서 입력 이벤트 및 Null 포인터 예외를 전달하는 예외

분류에서Dev

초보자를위한 C # 델리게이트 및 이벤트

분류에서Dev

null 개체 참조를받는 이유는 무엇입니까?

분류에서Dev

모든 하위 항목에 대한 모든 이벤트 및 이벤트 처리기를 동시에 인쇄합니다.

분류에서Dev

, 참조 및 숨은 참조에서 중복 이메일을 제거하여 그리드를 보냅니다.

분류에서Dev

Lob은 플레이 프레임 워크와 Ebean 및 H2를 사용하여 null을 반환합니다.

분류에서Dev

자바 스크립트 : 이벤트 및 요소 참조 전달

분류에서Dev

포인터에서 참조로 업그레이드-참조를 위해 NULL을 처리하는 방법

분류에서Dev

다른 클래스의 변수를 참조하면 NULL이 생성됩니다.

분류에서Dev

하위 문자열을 만들려고 할 때 "인덱스 및 길이는 문자열 내의 위치를 참조해야합니다."

분류에서Dev

GPS EXIF 데이터에 대한 긴 참조 및 위도 참조 태그를 얻는 방법

분류에서Dev

C #에서 이벤트 발생시 Null 참조 예외

분류에서Dev

.on을 사용한 jQuery 이벤트 위임 (이 참조)

분류에서Dev

null 인 참조를 위해 eventhandler 구독

분류에서Dev

부트 스트랩 캐 러셀은로드 및 슬라이드시 이벤트를 실행해야합니다.

분류에서Dev

음수 및 양수 부동 사이의 임의 범위 내의 범위를 제외합니다. C # 단일성

분류에서Dev

Windows API에서 직렬 수신 이벤트 및 콘솔 입력 이벤트를 기다립니다.

분류에서Dev

단위 테스트-Null 참조 Exc

분류에서Dev

System.ArgumentOutOfRangeException을 방지하는 방법 : 인덱스 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 : 길이

분류에서Dev

색인 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 길이

분류에서Dev

C # 인덱스 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 : 길이

Related 관련 기사

  1. 1

    참조를 NULL로 위임

  2. 2

    코드는 참조 형식 및 null 참조에 대한 정적 검사를 계약합니다.

  3. 3

    참조 Object 및 이벤트시 변경

  4. 4

    null이 아닌 속성은 null 또는 임시 값을 참조합니다.

  5. 5

    Keydown 및 keypress 이벤트는 다른 keyCode를 제공합니다.

  6. 6

    객체가있는 HashMap은 나중에 null 및 GC를 참조했습니다.

  7. 7

    XDocument 자손이 null 참조를 던지고 있습니다.

  8. 8

    이벤트 위임 및 if 문 내의 요소를 통해 반복

  9. 9

    SwipeRefreshLayout 풀다운에서 입력 이벤트 및 Null 포인터 예외를 전달하는 예외

  10. 10

    초보자를위한 C # 델리게이트 및 이벤트

  11. 11

    null 개체 참조를받는 이유는 무엇입니까?

  12. 12

    모든 하위 항목에 대한 모든 이벤트 및 이벤트 처리기를 동시에 인쇄합니다.

  13. 13

    , 참조 및 숨은 참조에서 중복 이메일을 제거하여 그리드를 보냅니다.

  14. 14

    Lob은 플레이 프레임 워크와 Ebean 및 H2를 사용하여 null을 반환합니다.

  15. 15

    자바 스크립트 : 이벤트 및 요소 참조 전달

  16. 16

    포인터에서 참조로 업그레이드-참조를 위해 NULL을 처리하는 방법

  17. 17

    다른 클래스의 변수를 참조하면 NULL이 생성됩니다.

  18. 18

    하위 문자열을 만들려고 할 때 "인덱스 및 길이는 문자열 내의 위치를 참조해야합니다."

  19. 19

    GPS EXIF 데이터에 대한 긴 참조 및 위도 참조 태그를 얻는 방법

  20. 20

    C #에서 이벤트 발생시 Null 참조 예외

  21. 21

    .on을 사용한 jQuery 이벤트 위임 (이 참조)

  22. 22

    null 인 참조를 위해 eventhandler 구독

  23. 23

    부트 스트랩 캐 러셀은로드 및 슬라이드시 이벤트를 실행해야합니다.

  24. 24

    음수 및 양수 부동 사이의 임의 범위 내의 범위를 제외합니다. C # 단일성

  25. 25

    Windows API에서 직렬 수신 이벤트 및 콘솔 입력 이벤트를 기다립니다.

  26. 26

    단위 테스트-Null 참조 Exc

  27. 27

    System.ArgumentOutOfRangeException을 방지하는 방법 : 인덱스 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 : 길이

  28. 28

    색인 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 길이

  29. 29

    C # 인덱스 및 길이는 문자열 내의 위치를 참조해야합니다. 매개 변수 이름 : 길이

뜨겁다태그

보관