728x90
C#
일반화 프로그래밍(Generic Programming)
- 특수한 개념으로부터 공통된 개념을 찾아 묶는 것을 일반화(Generalization)라고 한다.
- 데이터 형식을 일반화 한다.
일반화 메소드(Generic Method)
- 데이터 형식을 일반화한 메소드다.
- 일반 메소드와 선언 문법이 대부분 비슷하다. 다만 일반화할 형식이 들어가는 자리에 구체적인 형식의 이름 대신 형식 매개변수(type parameter)가 들어간다.
- 한정자 반환형식 메소드 이름<형식 매개변수> (매개변수 목록)
일반화 클래스
- class 클래스이름(형식 매개변수)
예외 처리하기(Exception Handing)
try-catch
- try절의 코드 블록에는 예외가 일어나지 않을 경우에 실행되어야 할 코드들이 들어가고, catch절에는 예외가 발생했을 때 처리 코드가 들어간다.
System.Exception 클래스
- C#에서 모든 예외 클래스는 반드시 이 클래스로부터 상속 받아야 한다.
예외 던지기
- 예외는 throw 문을 이용해서 던진다.
try~catch와 finally
- 자신이 소속된 try절이 실행된다면 finally절은 어떤 경우라도 실행된다. 심지어 try절 안에서 return문이나 throw문이 사용되더라도 finally절은 실행된다.
대리자와 이벤트(Delegate & Event)
- C#에서 콜백을 맡아 실행하는 일을 ‘대리자’가 담당한다.
- 대리자는 메소드에 대한 참조이다. 대리자에 메소드의 주소를 할당한 후 대리자를 호출하면 이 대리자가 메소드를 호출해준다.
- delegate 키워드를 이용해서 선언한다.
- 대리자는 인스턴스가 아닌 형식(type)이다.
- 왜, 언제 사용하는지
- 값이 아닌 코드 자체를 매개변수에 넘기고 싶을 때이다.
대리자 체인
- 대리자 하나가 메소드 여러 개를 동시에 참조할 수 있다.
- += 연산자를 이용해 결합할 수 있다. 결합해놓은 대리자는 한 번만 호출하면 자신이 참조하고 있는 메소드를 모두 호출한다.
- 여러 개의 콜백을 동시에 호출해야 할 때 유용하다.
익명 메소드(Anonymous Method)
- 이름이 없는 메소드를 말한다. 선언한 대리자의 인스턴스를 만들고 이 인스턴스가 메소드의 구현이 담겨있는 코드 블록을 참조한다. 대리자의 인스턴스를 호출하면 참조하던 코드를 실행한다.
- 익명 메소드는 자신을 참조할 대리자의 형식과 동일한 형식으로 선언되어야 한다.
- 대리자가 참조할 메소드를 넘겨야 할 일이 생겼는데, 이 메소드가 두 번 다시 사용할 일이 없다고 판단되면 익명 메소드를 사용한다.
이벤트 : 객체에 일어난 사건 알리기
- 어떤 일이 생겼을 때 이를 알려주는 객체를 만들 때 사용한다.
- 과정
- 대리자를 선언한다.
- 클래스 내에 1에서 선언한 대리자의 인스턴스를 event 한정자로 수식해서 선언한다.
- 이벤트 핸들러를 작성한다. 이벤트 핸들러는 1에서 선언한 대리자와 일치하는 메소드면 된다.
- 클래스의 인스턴스를 생성하고 이 객체의 이벤트에 3에서 작성한 이벤트 핸들러를 등록한다
- 이벤트가 발생하면 이벤트 핸들러가 호출된다
대리자와 이벤트
- 이벤트를 외부에서 직접 사용이 불가능하다.
- 대리자의 경우 public이나 internal로 수식되어 있으면 클래스의 외부에서 호출 가능하다.
728x90
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.07.23 RedMine (0) | 2024.07.23 |
---|---|
24.07.22 SVN (0) | 2024.07.22 |
24.07.18 C# (0) | 2024.07.18 |
24.07.17 C# (0) | 2024.07.17 |
24.07.16 C# (0) | 2024.07.16 |