목록분류 전체보기 (264)
나만의 작은 도서관
LINQ(Language Integrated Query)LINQ는 .NET 프레임워크에서 제공되는 쿼리 언어 확장이며, 데이터 소스(컬렉션, 데이터베이스, XML 등)에 대한 쿼리를 C# 언어 자체에 통합한 강력한 기능이다. LINQ를 사용하면 다양한 데이터 소스에 대해 일관된 방식으로 쿼리를 작성하고 실행할 수 있다. (조금 뻔한 이야기지만, 로우 쿼리를 대체하는 대부분의 방법들이 그랬듯이 LINQ 또한 로우 쿼리보다 성능이 떨어지며, 복잡한 쿼리에선 로우 쿼리만큼 직관적이지 않을 수 있다.) LINQ를 사용하는 이유통합된 쿼리 구문: SQL과 유사한 구문을 사용하여 데이터에 접근할 수 있다. (데이터 접근과 비즈니스 로직을 하나의 언어(C#)로 통합)코드 가독성 증가: 일관된 방식으로 쿼리를 작성하여..
Func, Action Func과 Action은 델리게이트를 대체하는 미리 정의된 제네릭 형식이다. Func와 Action의 차이점은 리턴값의 유무로 구분되며, 리턴값이 있다면 Func, 리턴값이 없다면 Action이다. 기본 형식// Func 선언 형식Func Func_이름;// Action 선언 형식Action Action_이름; 사용 예제(Func)// Func를 사용하여 두 개의 정수를 더하는 메서드int Add(int x, int y){ return x + y;}// Func를 이용한 메서드 호출Func addFunc = Add;int result = addFunc(3, 5);Console.WriteLine("결과: " + result);// 익명 메서드와 함께 사용한 FuncFunc r..
델리게이트(Delegate)델리게이트는 메서드를 참조하는 참조 역할을 하는 타입이다. 다른 프로그래밍 언어에서 다른 말로 함수 포인터라 부르기도 한다. 델리게이트를 이용하면 메서드를 매개변수로 전달하거나 변수에 할당할 수 있다. 델리게이트의 특징특정 메서드 시그니처(반환 타입과 매개변수)를 정의하며, 시그니처와 일치하는 메서드만을 참조할 수 있다.멀티캐스트(multicast, 데이터를 동시에 전송하는 것을 의미)가 가능하기 때문에, 여러 메서드를 등록하여 체인으로 호출할 수 있다.선언부 예제// [접근_제어자] delegate [반환_타입] [델리게이트_이름] (매개변수_목록);public delegate void MyDelegate(string message); 실행부 예제public class Pro..
예외 처리(Exception Handling)예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 감지하고 이를 처리하여 프로그램의 비정상 종료를 방지하는 구조화된 방법을 제공한다. C#에서는 try, catch, finally 블록과 throw 키워드를 사용하여 예외를 처리한다. 예외 처리를 하면 좋은 이유컴파일 시점에서 발생하는 오류는 코드를 수정하여 해결하면 그만이지만, 런타임 중에 발생하는 오류는 도중에 해결할 수 없다. 이렇게 발생한 오류가 사소한 오류라면 괜찮겠지만 치명적인 오류(프로그램을 멈추게 하는 것과 같이)라면 큰 문제가 된다. 예외처리는 이러한 오류가 발생했을 때 적절히 처리하고 프로그램의 실행을 계속할 수 있도록 한다. 이처럼, 예외 처리는 예외 ..
Nullable 타입C#에서 기본 값 타입(int, float, bool 등)은 null 값을 허용하지 않는다. 그렇기 때문에 null 대신 "값이 없음"을 표현하기 위해 -1과 같은 값을 넣기도 하지만 Nullable 기능을 이용하면 기본 값 타입에도 null값을 할당할 수 있다. 사용법 및 예제Nullable의 형식은 ? 연산자를 사용하여 선언한다. 예를 들어, int?는 int형에 null을 할당할 수 있는 Nullable 형식을 의미한다. int? nullableInt = null;if (nullableInt.HasValue) // HasValue: 값이 있는지 여부를 반환 (true/false).{ Console.WriteLine($"Value: {nullableInt.Value}"); /..
out, ref 키워드C#에서 out과 ref 키워드는 메서드의 매개변수를 참조로 전달하기 위해 사용한다. 두 키워드 모두 매개변수가 호출된 메서드 내부와 외부에서 공유되도록 하지만, 사용 목적과 동작 방식에서 몇 가지 중요한 차이점이 있다. out 키워드값 초기화 필요 없음: 메서드에 전달하기 전에 초기화되지 않은 변수를 사용할 수 있다.메서드 내부에서 반드시 초기화해야 함: 호출된 메서드에서 out 매개변수에 값을 할당하지 않으면 컴파일 오류가 발생한다.void Divide(int a, int b, out int quotient, out int remainder){ quotient = a / b; remainder = a % b;}int quotient, remainder;Divide(7,..