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

`nameof` 演算子を使用せずに .NET でタイプセーフなデータバインディングを実現するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-26 07:56:13
オリジナル
617 人が閲覧しました

How Can I Achieve Type-Safe Databinding in .NET Without the `nameof` Operator?

nameof 演算子のないタイプセーフなデータバインディング: 回避策

C# では、nameof 演算子の欠如により type-safe が問題になります。安全なデータバインディング。従来、開発者はプロパティ名を表すために文字列リテラルを使用しており、エラーのリスクが生じます。

.NET 3.5 の回避策

幸いなことに、.NET には回避策が存在します。類似の名前を提供する 3.5機能:

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;
    }
}
ログイン後にコピー

使用法:

var propName = Nameof<SampleClass>.Property(e => e.Name);
Console.WriteLine(propName); // Output: "Name"
ログイン後にコピー

.NET 2.0 の実装

残念ながら、.NET 2.0 での nameof 機能の実装は次のとおりです。ラムダ式と汎用オブジェクトがないため実現不可能

ただし、プロパティ名を安全に取得するには、Reflection や事前設定された辞書などの代替ソリューションの使用を検討してください。これらの方法では、より多くの手動作業が必要になる場合がありますが、それでも望ましい結果を達成できます。

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

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