Heim >Backend-Entwicklung >C++ >Wie rufe ich einen Eigenschaftsnamen als String in C# ab?
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!