Quiz riflessivo per programmatori C#
Data una classe X_Class ed una proprietà Y_Property di tipo Zeta:
class X_Class
{
public Zeta Y_Property { get; set; }
}
ricavare il nome della proprietà sotto forma di stringa in maniera programmatica (hint: usare la versione 4.x del Framework).
BONUS POINT: L’esercizio ha anche un suo perché, stabilire quale.
Soluzione:
public static string YPropToString()
{
return ((MemberExpression)
((Expression<Func<X_Class, object>>)
((o) => o.Y_Property)).Body).Member.Name;
}
Probabilmente si può fare di meglio. Lo scopo, come spiegato nei link dei commenti, è di fare in modo che il codice non compili se viene rinominata una proprietà
-quack