티스토리 뷰
7일차
2021 / 10 / 14
학습 내용 정리
- 무명 메서드 (익명 메서드) : 미리 정의하지 않아도 되는 메서드명이 없는 메서드
delegate ([파라메터]) {실행 문장}
- 람다 : 무명 함수 표현, LINQ에서 많이 사용
(입력 파라미터) => 실행식;
(입력 파라미터) => {실행문장 블록};
형식유추 기능 : 델리게이트를 이용하면 타입 명시하지 않아도 전달 가능, 리턴도 생략 가능
Delegate int Calculate(int a, int b);
Calculate cal = (a, b) => a + b;
- 핸들러
this.button1.Click += new System.EventHandler(button1_Click);
private void button1_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Color.Red;
}
- 익명 메서드
this.button1.Click += delegate(object sender, EventArgs e)
{
((Button)sender).BackColor = Color.Red;
};
- 람다식
this.button1.Click += (sender, e) => ((Button)sender).BackColor = Color.Red;
람다 안에 식이 많으면 핸들러 사용하는 것이 좋음.
Func, Action 델리게이트는 닷넷 프레임워크에 기본적으로 선언되어있음.
- Func 델리게이트 : 결과 반환 O, in 매개변수 타입 / out 출력 타입 (out 무조건 있어야 함)
Ex. Func<in, out> f = (x) => y;
- Action 델리게이트 : 결과 반환 X, 따라서 out 없음, void 함수
Ex. Action a = () => Console.WriteLine(“hi”);
- 제너릭 (일반화 프로그램) : 클래스를 사용하는 시점에 타입을 지정할 수 있도록 함
T를 사용해 타입을 일반화
.Net Generic 클래스 : 자료구조 관련 클래스들, List<T>, Dictionary<T>, LinkedList<T> 등
- 제너릭 타입 제약
where T : 제약조건
// T는 Value 타입
class MyClass<T> where T : struct
// T는 Reference 타입
class MyClass<T> where T : class
// T는 디폴트 생성자를 가져야 함
class MyClass<T> where T : new()
// T는 MyBase의 파생클래스이어야 함
class MyClass<T> where T : MyBase
// T는 IComparable 인터페이스를 가져야 함
class MyClass<T> where T : IComparable
- 제너릭 메서드 : 데이터 형식을 일반화한 메서드, 사용하는 시점에 타입을 지정
[한정자] [반환형식] 메서드 이름 <형식 매개변수> (파라메터목록)
{
}
'공부기록 > C#' 카테고리의 다른 글
| [WPF] XAML, 스타일 (0) | 2022.04.28 |
|---|---|
| [C#] 스레드, 비동기 델리게이트, 타이머 (0) | 2022.04.28 |
| [C#] 배열, 컬렉션, 인덱서 (0) | 2022.04.28 |
| [C#] 추상클래스, 인터페이스, 델리게이트, 예외처리 (0) | 2022.04.28 |
| [C#] 클래스 (0) | 2022.04.28 |
- Total
- Today
- Yesterday
- 곱창밴드
- 스킨
- 개발자 취업
- 격파르타 후기
- 넷플릭스
- 토익
- 99클럽
- 코딩테스트
- 스크런치
- sqld 자격증 합격
- html
- 정처기
- 티스토리스킨
- 미국주식
- 모바일 소프트웨어
- 정보처리기사실기
- 휴학
- 항해99
- 정보처리기사
- 미주
- 정처기실기
- 격파르타 장점
- 다이어리
- til
- 격파르타 합격후기
- 코딩테스트 준비
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |