ASP/ADO.Net C# 실무 과정 자료] 위임과 이벤트






ASP/ADO.Net C# 실무 과정 자료] 위임과 이벤트

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


위임과 이벤트


■ 이벤트를 사용하기 위해 반드시 위임을 같이 사용해야 한다.


■ 위임 리스트에 자신의 메소드를 등록시키는 것이 바로 이벤트 핸들러의 등록이다.


■ 출판자가 이벤트를 전하는 방법은 위임을 실행 시키는 과정이며 이때 위임 리스트에 들어있는 메소드가 모두 실행된다.


ASP/ADO.Net C# 실무 과정 자료] 이벤트 (Event)






ASP/ADO.Net C# 실무 과정 자료] 이벤트 (Event)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


이벤트 (Event)


■ 이벤트의 개념

- 마우스 버튼의 클릭, 키보드 조작은 모두 이벤트가 된다.


- 이 이벤트 들을 수신하고자 하는 객체에게 전달해야 한다.



■ 출판자(Publisher)/구독자(Subscriber)

- 출판자: 이벤트가 발생하면 특정 구독자에게 이벤트 발생을 통지


- 구독자: 이벤트 발생시 출판자로 부터 호출되어질 메소드를 등록한 객체들



ASP/ADO.Net C# 실무 과정 자료] 위임의 사용(3)






ASP/ADO.Net C# 실무 과정 자료] 위임의 사용(3)


실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



위임의 사용(3)


설명)


■ 위임은 오브젝트와 비슷한 측면이 있다. 즉, + - 등의 연산이 가능한 것이다. 두개 이상의 위임을 합치기 위해서는 + 연산자를 사용하며, 두 메소드가 같은 위임으로 치환될 수 있어야 한다. (즉 파라미터 형식과 반환 형식이 같아야 한다)

c = new Simple(a.Minus) + new Simple(b.Plus);

■ 위와 같이 합쳐진 위임의 경우, C(10); 을 실행하는 것은 a.Minus(10); b.Plus(10);을 순차적으로 실행하는 것과 같은 역할을 한다.


■ 위임에 – 연산자도 가능하다.


■ +는 Combine 메소드 –는 Remove 메소드와 같다.



ASP/ADO.Net C# 실무 과정 자료] 위임의사용 (2)






ASP/ADO.Net C# 실무 과정 자료] 위임의사용 (2)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


위임의사용 (2)


설명)

■ 첫줄의 public delegate void Simple(int a); 과 같이 위임을 선언하고, Simple c = new Simple(a.Minus); 이런 식으로 위임을 생성한다.



■ 위임을 생성한 이후, C(10); 을 실행하는 것은 a.Minus(10); 을 실행하는 것과 같은 효과가 있다.



■ 맨 마지막 두 줄과 같이 Simple 위임은, 클래스및 오브젝트에 상관없이, 같은 형식의 모든 메소드를 위임받을 수 있다. 이후에 C(10); 을 실행하는 것은 b.Plus(10); 을 실행하는 것과 같은 효과가 있다.


ASP/ADO.Net C# 실무 과정 자료] 위임의사용 (1)






ASP/ADO.Net C# 실무 과정 자료] 위임의사용 (1)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



위임의사용 (1)


ASP/ADO.Net C# 실무 과정 자료] 위임의 생성






ASP/ADO.Net C# 실무 과정 자료] 위임의 생성

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


위임의 생성


Public delegate void Simple(int x);

■ 위와 같이 선언된 위임은 다음 메소드들을 위임받을 수 있다.

public static void M1(int x); // static 도 상관없다.

public void Method1(int z);


■ 첫줄과 같은 위임의 실제 생성은 다음과 같이 한다. (인스턴스 생성과 비슷하다.)

Simple a = new Simple(Method1);

Simple a = new Simple(Class1.Method1);

Simple a = new Simple(Object1.Method1);



ASP/ADO.Net C# 실무 과정 자료] 위임 (Delegate)






ASP/ADO.Net C# 실무 과정 자료] 위임 (Delegate)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


위임 (Delegate)


■ C#에서는 오브젝트의 메소드를 다른 이름으로 위임할 수 있는 방법을 제공한다.



■ 이 위임은, C/C++ 에서 사용하는 함수 포인터와 같은 역할을 하게 한다.



■ 선언된 위임은 동일한 파라미터와 반환형을 가지는 모든 메소드로 부터 위임을 받을 수 있다.



■ 위임 선언은 다음과 같다


public delegate 반환값형식 위임받은측의이름(파라미터 형식)

예) public delegate int DelegateName(int a, string b)


ASP/ADO.Net C# 실무 과정 자료] 메소드 오버로딩 예제






ASP/ADO.Net C# 실무 과정 자료] 메소드 오버로딩 예제

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


메소드 오버로딩 예제


(1)


(2)

설명 )

■ Print란 이름의 메소드 3개가 정의되었다.

1) public static void PrintStar()

2) public static void PrintStar(int value)

3) public static void PrintStar(int value1, int value2)

: 각 오버로딩 메소드는 서로 다른 파라미터 형식을 가지고 있기 때문에 다른 서명을 가지고. Main에서 PrintStar를 호출할 때, 그 파라미터의 형식에 따라 서로 다른 메소드가 호출된다.



■ 만약 public static int PrintStar(int value) 메소드가 존재한다면 2)와 충돌할 것이다.



■ 만약 public static void PrintStar(ref int value1)메소드가 존재한다면 이것은 새로운 메소드 서명이 되며 오버로딩 될 수 있다.



+ Recent posts