C#에서 nameof 연산자가 없는 경우의 형식 안전 해결 방법
속성 이름의 문자열 표현을 반환하는 nameof 연산자 는 C#에 최근 추가된 것입니다. 그러나 이전 버전의 C#에 이 연산자가 없으면 형식이 안전한 데이터 바인딩에 방해가 될 수 있습니다.
람다 표현식을 사용하는 형식이 안전한 솔루션
한 가지 해결 방법 이 문제는 람다 식을 사용하여 속성 이름을 얻는 것입니다. 이 접근 방식은 nameof와 유사한 기능을 제공하면서 유형 안전성을 보장합니다. 작동 방식은 다음과 같습니다.
사용 예
다음 코드는 이 해결 방법을 사용하는 방법을 보여줍니다.
class Program { static void Main() { var propName = Nameof<Customer>.Property(e => e.Name); Console.WriteLine(propName); } } public class Nameof<T> { public static string Property<TProp>(Expression<Func<T, TProp>> expression) { var body = expression.Body as MemberExpression; if(body == null) throw new ArgumentException("'expression' should be a member expression"); return body.Member.Name; } }
이 예에서 propName은 e => 표현식을 사용하여 속성을 호출한 후 문자열 "Name"을 포함합니다. e.Name.
참고: 이 해결 방법에는 .NET 3.5 이상이 필요합니다. .NET 2.0의 경우에는 다른 접근 방식이 필요합니다. 그러나 .NET 2.0에서 지원되지 않는 람다 식이나 리플렉션을 사용하지 않고는 nameof의 기능을 완전히 복제할 수 없습니다.
위 내용은 이전 C# 버전에서 형식이 안전한 속성 이름 검색을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!