Ich möchte regelmäßig den Namen einer Instanzeigenschaft eines Typs abrufen, wenn ich keine Instanz habe. Zur Zeit, dies zu tun, verwende ich die folgende Inhouse-Funktion, die die Expression[Func[T, object]]
Parameter interpretiert und gibt den Eigenschaftsnamen:Kann C# nameof operator Referenzinstanzeigenschaft ohne Instanz?
var str = LinqExtensions.NameOf<ClientService>(x => x.EndDate);
// Now str == "EndDate"
aber es ist eine Schande scheint nicht in nameof
Betreibern gebaut zu verwenden.
Leider scheint der Operator nameof
entweder eine Instanz zu benötigen oder eine statische Eigenschaft zu referenzieren.
Gibt es eine saubere Möglichkeit, den Operator nameof
anstelle unserer internen Funktion zu verwenden? Zum Beispiel:
nameof(ClientService.EndDate) // ClientService.EndDate not normally syntactically valid as EndDate is instance member
EDIT
war ich völlig falsch, die Syntax nameof(ClientService.EndDate)
als tatsächlich funktioniert beschrieben, wie ist.
Es funktioniert einfach - 'Klasse C {public int P {get; }} '-' nameof (C.P) 'kompiliert gut. –