오늘 학습한 내용
1) try-catch(finally)
예외 처리를 위한 try-catch 구문을 사용하는 방법을 학습했습니다. 특히 finally 사용법을 처음 알고 학습했습니다.
- try: 예외가 발생할 가능성이 있는 코드 작성.
- catch: 예외가 발생했을 때 처리할 코드 작성.
- finally: 예외 발생 여부와 관계없이 실행될 코드 작성.
try
{
int result = 10 / 0; // 예외 발생
}
catch (DivideByZeroException ex)
{
Console.WriteLine("0으로 나눌 수 없습니다.");
}
finally
{
Console.WriteLine("이 코드는 예외와 관계없이 실행됩니다.");
}
2) 델리게이트에서의 Func, Action
델리게이트의 두 가지 주요 타입인 Func와 Action을 사용하는 방법을 학습했습니다.
- Func: 반환값이 있는 델리게이트.
- Action: 반환값이 없는 델리게이트
// Func 사용 예시
Func<int, int, int> add = (x, y) => x + y;
Console.WriteLine(add(5, 3)); // 출력: 8
// Action 사용 예시
Action<string> greet = name => Console.WriteLine($"Hello, {name}!");
greet("John"); // 출력: Hello, John!
3) Nullable 타입
값 타입에 null을 할당할 수 있도록 Nullable<T>를 사용하는 방법을 학습했습니다.
- Nullable<T>를 사용하여 값 타입 변수에 null을 할당 가능.
- HasValue와 GetValueOrDefault() 메서드를 사용하여 Nullable 값을 처리.
int? nullableInt = null;
if (nullableInt.HasValue)
{
Console.WriteLine(nullableInt.Value);
}
else
{
Console.WriteLine("값이 없습니다.");
}
문제 및 해결 과정
1) 문제 (델리게이트에서의 Func, Action)
델리게이트에 대해 기본적인 개념은 알았지만, Func와 Action 델리게이트를 정확히 구분하고 사용할 수 있는 방법을 몰랐습니다.
시도한 해결 방법
Func와 Action의 사용 방법을 학습하고, 각각의 델리게이트를 사용하여 연습 코드를 작성해보며 학습했습니다.
결과
델리게이트를 효율적으로 활용할 수 있게 되었고, 코드의 재사용성을 높일 수 있었습니다.
2) 문제 (Nullable 타입)
null을 값 타입 변수에 할당할 수 있다는 개념을 몰랐습니다.
시도한 해결 방법
Nullable<T> 타입을 사용하여 값 타입에 null을 할당할 수 있다는 점을 학습했습니다.
결과
값 타입 변수에 null을 할당하고 이를 처리할 수 있게 되었습니다.
새롭게 알게 된 점
1) try-catch-finally 구문의 중요성
예외가 발생했을 때 프로그램의 흐름을 안전하게 제어할 수 있도록 하는 try-catch-finally 구문의 중요성을 알게 되었습니다.
2) Func와 Action 활용성
Func와 Action을 사용하면 코드의 가독성을 높이고, 함수의 반환값 유무에 따라 유연하게 처리할 수 있다는 점을 깨달았습니다.
3) Nullable 타입의 유용성
값 타입 변수에 null을 할당하고 처리할 수 있도록 돕는 Nullable<T>를 이해했습니다. 비교적 적은 상황이겠지만 null을 처리할 수 있다는 점을 배웠습니다.