델리게이트 ( Delegate ) : 메서드를 참조하는 타입
함수 포인터와 유사한 역할을 하며, 메서드 호출을 다른 메서드로 전달하는 역할.
콜백 함수, 이벤트 처리, 비동기 프로그래밍 등 다양한 시나리오에서 유용하게 활용.
delegate 반환타입 델리게이트이름(매개변수타입 매개변수);
delegate int MathOperation(int a, int b); class Program { static int Add(int a, int b) { return a + b; } static int Subtract(int a, int b) { return a - b; } static void Main(string[] args) { MathOperation operation; operation = Add; Console.WriteLine("Addition: " + operation(5, 3)); operation = Subtract; Console.WriteLine("Subtraction: " + operation(5, 3)); } }
람다 ( Lambda ) : 간단한 익명 함수를 생성하기 위한 표현식
주로 델리게이트나 함수형 인터페이스와 함께 사용되며, 코드를 더 간결하고 가독성 있게 작성할 수 있는 강력한 기능.
기본 구조
(parameter_list) => expression_or_statement_block
사용 예제
class Program { delegate int MathOperation(int a, int b); static void Main(string[] args) { MathOperation add = (x, y) => x + y; MathOperation subtract = (x, y) => x - y; Console.WriteLine("Addition: " + add(5, 3)); Console.WriteLine("Subtraction: " + subtract(5, 3)); } }
Func과 Action : 델리게이트를 대체하는 미리 정의된 제네릭 형식
델리게이트의 특정한 종류로, 다른 매개변수 및 반환 값 타입의 델리게이트를 선언하는데 사용.
Func : 반환 값을 가지는 메서드 또는 함수를 참조하는 델리게이트
제네릭 형태로 정의되어 있으며, 제네릭 매개변수를 사용하여 매개변수 타입과 반환 타입을 지정할 수 있음.
마지막 제네릭 매개변수는 반환 타입을 나타냄.
형식
Func<매개변수1타입, 매개변수2타입, ..., 반환타입> 함수이름;
사용 예제
Func<int, int, int> addFunc = (x, y) => x + y;
int result = addFunc(3, 5); // result = 8
=> 두 개의 정수를 받아서 정수를 반환하는 메서드를 참조하는 Func.
Action : 반환 값이 없는 메서드나 함수를 참조하는 델리게이트
Func과 유사하지만, 마지막 제네릭 매개변수가 반환 타입이 아니라 void로 고정.
형식
Action<매개변수1타입, 매개변수2타입, ...> 함수이름;
사용 예제
Action<int, int> printAction = (x, y) => Console.WriteLine($"Sum: {x + y}");
printAction(3, 5); // 출력: Sum: 8
=> 두 개의 정수를 받아서 출력하는 메서드를 참조하는 Action.
LINQ (Language Integrated Query) : .NET 언어 패밀리에서 데이터를 쿼리하고 조작하기 위한 통합된 쿼리 언어와 문법을 제공하는 기술.컬렉션, 데이터베이스, XML 문서 등 다양한 데이터 소스에 대해 일관된 방식으로 쿼리를 작성하고 실행할 수 있도록 도와줌.
var result = from 변수 in 데이터소스
[where 조건식]orderby 정렬식 [, 정렬식...]]
[select 식];
LINQ to Objects: C# 컬렉션과 같은 인메모리 데이터를 쿼리하는데 사용.
IEnumerable를 활용하여 컬렉션을 쿼리할 수 있음.
LINQ to SQL: 데이터베이스를 대상으로 하는 SQL 기반 쿼리 기술.
데이터베이스와 .NET 객체 간의 매핑을 통해 데이터를 쿼리하고 조작할 수 있음.
LINQ to XML: XML 문서를 대상으로 하는 쿼리 기술.
XML 데이터를 직접 쿼리하여 원하는 정보를 추출하거나 수정할 수 있음.
LINQ to Entities: Entity Framework를 통해 데이터베이스에 대한 쿼리 및 ORM(Object-Relational Mapping)을 지원.
LINQ to DataSet: ADO.NET DataSet을 대상으로 하는 쿼리 기능을 제공.
// 데이터 소스 정의 (컬렉션) List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // 쿼리 작성 (선언적인 구문) var evenNumbers = from num in numbers where num % 2 == 0 select num; // 쿼리 실행 및 결과 처리 foreach (var num in evenNumbers) { Console.WriteLine(num); }
09:00 ~ 09:30 : 팀원 간 인사 및 하루 계획 작성
09:30 ~ 14:00 : 개인과제 회고
12시-1시: 점심식사
14:00 ~ 18:00 : 개인과제 회고
6시-7시: 저녁식사
19:00 ~ 20:00 : 지급 받은 강의 복습
20:00 ~ 20:30 : 6조 회의
20:30 ~ 21:00 : TIL,마무리 회고 진행