대리자(Delegate)와 이벤트 - 1 (대리자, 대리자를 사용하는 이유와 상황, 일반화 대리자, 대리자 체인, 익명 메소드)
1. 대리자(Delegate) 콜백(Callback)은 프로그래밍에서 어떤일을 해줄 코드를 두고, 이 코드가 실행할 세부코드는 컴파일 시점이 아닌 실행시점에 부여하는것이다. 또한, 대리자는 메소드에 의한 참조이며, 대리자에 메소드의 주소를 할당한 후 대리자를 호출하면 이 대리자가 메소드를 호출해준다. //대리자 선언예시 //메소드에 대한 참조이므로 자신이 참조할 메소드의 반환 형식과 매개 변수를 명시해줘야한다. delegate int MyDelegate(int a, int b) * 대리자는 인스턴스가 아닌 int, string과 같이 형식(Type)이며, 인스턴스를 따로 만들어야 사용가능하다. ex) int Plus(int a, int b){return a+b;} int Minus(int a, int b..
예외 처리하기 (try~catch문, System.Exception 클래스, 예외 던지기, finally, 사용자 정의 예외클래스, 예외 필터(when), 예외처리의 장점)
A. try ~ catch문 static void Main(string[] args) { int[] arr = { 1, 2, 3 }; try { for (int i = 0; i < 5; i++) Console.WriteLine(arr[i]); } catch(IndexOutOfRangeException e) { Console.WriteLine($"예외가 발생했습니다 :{e.Message}"); } Console.WriteLine("종료"); } B. System.Exception 클래스 C#에서 모든 예외클래스는 System.Exception 클래스로부터 파생되었다. 즉, catch절에서 Exception으로 모든 예외를 다 받아낼 수 있다. * 하지만, 예외 상황에 따라 섬세한 예외 처리가 필요한 코드에..
배열 (선언 및 사용, 초기화, System.Array 클래스, 2차원/다차원 배열, 가변배열)
A. 배열의 선언 및 사용법 int[] array = new int[5]; int sum; foreach(int score in array) sum+=score; int average= sum/array.length(); B. 배열의 초기화방법 3가지 //1번째 : 기본 string[] array1 = new string[3]{"a","b","c"}; //배열 객체를 초기화하는 {}블록을 컬렉션 초기자(Collection Initializer)라고 한다. //2번째 : 배열의 용량생략 string[] array2 = new string[]{"a","b","c"}; //3번째 : new 연산자, 배열의 용량 모두를 생략 string[] array3 = {"a","b","c"} * 작성시 3번째 방법이 편하..