ホームページ > バックエンド開発 > C++ > C# で `nameof` 演算子の前後でタイプセーフなデータ バインディングを実現するにはどうすればよいですか?

C# で `nameof` 演算子の前後でタイプセーフなデータ バインディングを実現するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-01 02:44:08
オリジナル
263 人が閲覧しました

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

C# でのタイプセーフなデータ バインディングの代替演算子の Nameof 演算子

C# の現在の言語改善の 1 つは、'nameof を含めることです。 ' 演算子。この演算子により、プロパティ名へのタイプセーフなアクセスが可能になり、ドメイン オブジェクトを UI 要素にバインドしやすくなります。ここでは、'nameof' 演算子を実装する前に C# で同様の機能を提供できる回避策を示します。

.NET 3.5 回避策

.NET 3.5 では、次のことができます。ラムダ式を使用してプロパティ名を文字列として抽出します:

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# 3.0 以降が必要です。

.NET 2.0 との互換性

残念ながら、「nameof」演算子の機能は、 .NET 2.0 は使用できません。ただし、リフレクションを使用してプロパティ名を手動で構築することもできます。

以上がC# で `nameof` 演算子の前後でタイプセーフなデータ バインディングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート