ホームページ >バックエンド開発 >C++ >C# でプロパティ名を文字列として取得するにはどうすればよいですか?

C# でプロパティ名を文字列として取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-12 07:54:41602ブラウズ

How to Retrieve a Property Name as a String in C#?

C# で文字列としてプロパティ名にアクセスする

C# プログラミングでは、特にリフレクションを使用する場合、プロパティの名前を文字列として取得することが頻繁に必要になります。これは、動的なメソッド呼び出しや偶発的なプロパティの名前変更に対する保護などのタスクにとって非常に貴重であることがわかります。

nameof 演算子の活用 (C# 6.0 以降)

C# 6.0 以降、nameof 演算子はシンプルで効率的なソリューションを提供します。 式 nameof(SomeProperty) は、コンパイル時に文字列 "SomeProperty" を直接生成します。

汎用プロパティ名の取得メソッド

6.0 より前のバージョンの C# では、一般的な方法で回避策が提供されます。

<code class="language-csharp">public static string GetPropertyName<T>(Expression<Func<T>> propertyLambda)
{
    var me = propertyLambda.Body as MemberExpression;
    if (me == null)
    {
        throw new ArgumentException("Invalid lambda expression");
    }
    return me.Member.Name;
}</code>

このメソッドは、プロパティを参照するラムダ式を受け入れ、その名前を返します。

実際の応用

GetPropertyName メソッドを利用する方法は次のとおりです:

<code class="language-csharp">// For a static property:
string propertyName = GetPropertyName(() => SomeClass.SomeProperty);

// For an instance property:
string propertyName = GetPropertyName(() => someObject.SomeProperty);</code>

概要

最新の nameof 演算子を使用する場合でも、GetPropertyName メソッドを使用する場合でも、プロパティ名を文字列として取得することが簡素化され、リフレクションやリファクタリングを扱う際のコードの保守性と堅牢性が向上します。

以上がC# でプロパティ名を文字列として取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。