Heim >Backend-Entwicklung >C++ >Wie rufe ich einen Eigenschaftsnamen als String in C# ab?

Wie rufe ich einen Eigenschaftsnamen als String in C# ab?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-12 07:54:41626Durchsuche

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

Zugriff auf Eigenschaftsnamen als Zeichenfolgen in C#

Bei der C#-Programmierung, insbesondere bei Verwendung von Reflektion, ist es häufig erforderlich, den Namen einer Eigenschaft als Zeichenfolge abzurufen. Dies erweist sich als unschätzbar wertvoll für Aufgaben wie den Aufruf dynamischer Methoden oder den Schutz vor versehentlicher Umbenennung von Eigenschaften.

Nutzung des nameof-Operators (C# 6.0 und höher)

Seit C# 6.0 bietet der nameof-Operator eine einfache und effiziente Lösung. Der Ausdruck nameof(SomeProperty) liefert zur Kompilierungszeit direkt die Zeichenfolge „SomeProperty“.

Eine generische Methode zum Abrufen von Eigenschaftsnamen

Für Versionen von C# vor 6.0 bietet eine generische Methode eine Problemumgehung:

<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>

Diese Methode akzeptiert einen Lambda-Ausdruck, der auf eine Eigenschaft verweist, und gibt deren Namen zurück.

Praktische Anwendung

So verwenden Sie die GetPropertyName-Methode:

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

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

Zusammenfassung

Unabhängig davon, ob der moderne nameof-Operator oder die GetPropertyName-Methode verwendet wird, wird das Abrufen von Eigenschaftsnamen als Zeichenfolgen vereinfacht, was die Wartbarkeit und Robustheit des Codes beim Umgang mit Reflektion und Refactoring verbessert.

Das obige ist der detaillierte Inhalt vonWie rufe ich einen Eigenschaftsnamen als String in C# ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn