Desidero regolarmente ottenere il nome di una proprietà di istanza di un tipo, quando non ho un'istanza. Attualmente per fare questo, io uso la seguente funzione inhouse che interpreta il parametro Expression[Func[T, object]]
e restituisce il nome della proprietà:Can C# nome della proprietà dell'istanza di riferimento dell'operatore senza istanza?
var str = LinqExtensions.NameOf<ClientService>(x => x.EndDate);
// Now str == "EndDate"
Tuttavia sembra un peccato non utilizzare il costruito nel nameof
dell'operatore.
Sfortunatamente sembra che l'operatore nameof
richieda un'istanza o, per fare riferimento a proprietà statiche.
C'è un modo pulito di usare l'operatore nameof
invece della nostra funzione interna? Per esempio:
nameof(ClientService.EndDate) // ClientService.EndDate not normally syntactically valid as EndDate is instance member
EDIT
ero completamente sbagliato, la sintassi nameof(ClientService.EndDate)
come descritto in realtà funziona come è.
Funziona solo - 'classe C {pubblico int P {get; }} '-' nameof (C.P) 'compila bene. –