Ich habe eine seltsame Situation, wo ich den Namen des Delegaten als Zeichenfolge erhalten muss. Ich habe eine generische Methode, die so aussieht.Name der Aktion/Func Delegat
private T Get<T>(T task, Action<T> method) where T : class
{
string methodName = method.Method.Name //Should return Bark
}
und ich rufe es wie dieses
private void MakeDogBark()
{
dog = Get(dog, x=>x.Bark());
}
Aber statt des Sehens "Bark" Ich sehe diese "<MakeDogBark>b__19"
. So sieht es aus, als ob es mir den Methodennamen gibt, der den anfänglichen Anruf statt des Namens des Delegaten machte.
Wer weiß, wie man das macht?
die schön gearbeitet. Ich musste es nicht ausführen, aber ich musste den Methodennamen an eine Klasse übergeben, die etwas damit machen würde. Anstatt nur eine Zeichenfolge zu nehmen, wollte ich die Typsicherheit des Anrufers, die mir eine echte Methode geben muss. Wie immer bist du der Mann :) – Adam
@Jon Gibt es eine Möglichkeit, das gleiche mit einer generischen Methode zu tun? –
@ArnabChakraborty: Sie müssten auch das Argument type angeben, aber ich glaube, es würde dann funktionieren. Kann es jetzt aber nicht so einfach ausprobieren. –