C# 10부터 도입된 CallerArgumentExpression 속성을 활용하면, 메서드 인자 이름을 자동으로 받아와 검사 메시지를 자동화할 수 있습니다. 이 기능 덕분에 코드 가독성과 유지보수성이 크게 향상됩니다.
1. CallerArgumentExpression 기본 개념
CallerArgumentExpression은 메서드의 매개변수에 적용할 수 있는 특성(attribute)으로, 호출한 쪽 인자의 표현식을 문자열로 받을 수 있습니다. 주로 파라미터 유효성 검증 시 사용됩니다.
2. 검증 메시지 자동화 예제
using System;
using System.Runtime.CompilerServices;
public static class Validator
{
public static void NotNull(object? value, [CallerArgumentExpression("value")] string paramName = null!)
{
if (value is null)
throw new ArgumentNullException(paramName, $"'{paramName}' 값은 null일 수 없습니다.");
}
}
// 사용 예
class Program
{
static void Main()
{
string? name = null;
Validator.NotNull(name); // 예외 발생, paramName 자동 전달
}
}
3. 장점
- 인자 이름을 수동으로 작성하지 않아도 되어 오타를 방지합니다.
- 유효성 검사 메서드 재사용성이 높아집니다.
- 예외 메시지가 명확해 디버깅이 수월합니다.
'C#' 카테고리의 다른 글
| C# init 접근자를 활용한 불변 객체 설계 (0) | 2026.07.26 |
|---|---|
| C# required 키워드로 필수 초기화 강제하기 (0) | 2026.07.26 |
| C# nameof 연산자로 리팩터링 안전성 높이기 (0) | 2026.07.24 |
| C# Lazy<T>를 활용한 지연 초기화 패턴 (0) | 2026.07.23 |
| C# ReaderWriterLockSlim으로 읽기/쓰기 성능 최적화 (0) | 2026.07.23 |