static void Main(string[] args) { InDelegate id = new InDelegate(); // id.myEvent += new delegateEvent(ConsoleFunc); id.myEvent += ConsoleFunc; // id.myEvent = ConsoleFunc; // 대입연산자 사용 불가 id.myDelegate = ConsoleFunc; id.myDelegate("Test"); // 클래스 외부 직접 접근 가능 // id.Event("Test"); // 클래스 외부에서 직접 호출 불가 for (int i = 0; i < 10; i++) { id.DoEvent(i + 1, i + 2); } }
static void Main(string[] args) { InDelegate id = new InDelegate(); //id.myEvent += new delegateEvent(ConsoleFunc); id.myEvent += ConsoleFunc; //id.myEvent = ConsoleFunc; //대입연산자 사용 불가.. id.myDelegate = ConsoleFunc; id.myDelegate("Test"); //클래스 외부 직접 호출 가능.. //id.myEvent("Test"); //클래스 외부에서 직접 호출 불가.. for (int i = 0; i < 10; i++) { if (i == 9) { id.myEvent -= ConsoleFunc; } id.DoEvent(i + 1, i + 2); //10, 11 } }
static void Main(string[] args) { InDelegate id = new InDelegate(); //id.myEvent += new delegateEvent(ConsoleFunc); //이것도 사용 가능 id.myEvent += ConsoleFunc; //이벤트는 +=만 사용(-= 이건 사용가능) //id.myEvent = ConsoleFunc; //대입연산자 사용불가 id.myDelegate = ConsoleFunc; // event가 아니고 delegate라 가능 id.myDelegate("Test"); // 클래스 외부에서 직접 호출 가능 //id.myEvent("Test"); // 클래스 외부에서 직접 호출 불가능 for (int i = 0; i < 10; i++) { if (i == 9) { id.myEvent -= ConsoleFunc; //이벤트 빼기 } id.DoEvent(i + 1, i + 2); } }