>백엔드 개발 >C++ >`nameof` 연산자 없이 C#에서 형식이 안전한 데이터 바인딩을 달성하려면 어떻게 해야 합니까?

`nameof` 연산자 없이 C#에서 형식이 안전한 데이터 바인딩을 달성하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-31 08:43:10531검색

How Can I Achieve Type-Safe Data Binding in C# Without the `nameof` Operator?

형식 안전 데이터 바인딩을 위한 C#의 'nameof' 연산자 부족에 대한 해결 방법

C#에 'nameof' 연산자가 없다는 점은 개발자들 사이에서 논의를 불러일으켰습니다. 이 연산자를 구현하면 속성 이름을 nameof(Customer.Name)의 "Name"과 같은 문자열로 검색할 수 있습니다.

유형이 안전한 데이터 바인딩이 필요한 시나리오의 경우 개발자는 다음에서 해결 방법을 찾았습니다. 'nameof'가 없습니다. 람다 식을 활용하는 한 가지 솔루션이 .NET 3.5에 등장했습니다. 그러나 이 해결 방법을 찾는 것은 어려울 수 있습니다.

.NET 3.5에서 'nameof' 기능을 구현하려면 다음 접근 방식을 채택할 수 있습니다.

using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        var propName = Nameof<SampleClass>.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;
    }
}

이 코드는 효과적으로 검색하고 표시합니다. 유형 안전성을 보장하면서 속성 이름을 문자열로 사용합니다.

위 내용은 `nameof` 연산자 없이 C#에서 형식이 안전한 데이터 바인딩을 달성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.