Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#44

AW: Wozu sind Attribute gut ?

  Alt 6. Aug 2013, 16:03
In C# macht man so etwas mit Expression trees, da sie refactoring-safe sind.

Eine naive Implementierung frei Schnauze:

Code:
public static string GetName<TResult>(Expression<Func<TResult>> expression)
{
   var me = expression.Body as MemeberExpressin;
   if(me != null)
     return me.Member.Name;

   var mce = expression.Body as MetodCallExpressin;
   if(mce != null)
     return mce.Method.Name;
   

   throw ....
}

var methodName = Xyz.GetName(() => "".Substring(0, 1)); // ergibt "Substring"
Auf die Art kann man sich auch direkt PropertyInfos oder MethodInfos (vor allem den korrekten Overload) geben lassen. Sollte man aber möglichst so machen, dass es nicht unnötig oft passiert. Type-safe ist nett, aber schnell ist auch wichtig.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat