본문 바로가기
IT(기존 자료 보관용)

뇌를 자극하는 C# 5.0 프로그래밍 13장 연습문제 1~2번 답

by 공학코드 2015. 6. 17.
728x90
반응형

13장에서 익힌 개념에 대해 묻는 문제들이다.


1. 출력결과가 다음과 같이 나오도록 아래의 코드에 익명 메소드를 추가하여 완성하세요.

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace practice13_1
  8. {
  9. delegate int MyDelegate(int a, int b);
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. MyDelegate Callback;
  15.  
  16. Callback = delegate (int a, int b){
  17. return a+b;
  18. };
  19.  
  20. Console.WriteLine(Callback(3, 4));
  21.  
  22. Callback = delegate (int a, int b){
  23. return a-b;
  24. };
  25.  
  26. Console.WriteLine(Callback(7, 5));
  27. }
  28. }
  29. }
  30.  





405페이지의 13.5 익명 메소드를 참고하면 된다.


2. 출력 결과가 다음과 같이 나오도록 다음 코드에 이벤트 처리기를 추가하세요.


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace practice13_2
  8. {
  9. delegate void MyDelegate(int a);
  10.  
  11. class Market
  12. {
  13. public event MyDelegate CustomerEvent;
  14.  
  15. public void BuySomething(int CustomerNo)
  16. {
  17. if (CustomerNo == 30)
  18. CustomerEvent(CustomerNo);
  19. }
  20. }
  21.  
  22. class Program
  23. {
  24. static void Main(string[] args)
  25. {
  26. Market market = new Market();
  27. market.CustomerEvent += new MyDelegate(MyHandler);
  28.  
  29. for (int customerNo = 0; customerNo < 100; customerNo += 10)
  30. market.BuySomething(customerNo);
  31. }
  32.  
  33. static public void MyHandler(int CustomerNo)
  34. {
  35. Console.WriteLine("축하합니다! " + CustomerNo + "번째 고객 이벤트에 당첨되셨습니다.");
  36. }
  37. }
  38. }
  39.  

책에서 제시한 코드와 유사하게 작성하였다. 최대한 변수 하나하나에 의미를 둘 수 있도록 노력했다.





728x90
반응형

댓글