Ich brauche eine Swallow (Func) -Methode von NLog Bibliothek. Wichtiger Hinweis: Ich rufe Swallow von einer statischen Methode und möchte eine statische Methode übergeben.Wie Übergeben eines Verweises auf eine statische Methode als Funktionsparameter in C#?
Die Dokumentation ist hier:
http://nlog-project.org/documentation/v3.2.1/html/Overload_NLog_Logger_Swallow.htm
Der erste Fall (Swallow(Action)
) (vorbei an statischen Methoden WO-Parameter) funktioniert ganz einfach:
static void ParameterlessMethodThatCasts()
{
throw NotImplementedException("Not implemented yet");
}
...
// Code in some method that uses static instance of nLog
nLog.Instance.Swallow(ParameterlessMethodThatCasts);
Leider gibt kein Beispiel für die vorgesehen ist 2. (Swallow<T>(Func<T>)
) und 3. (Swallow<T>(Func<T>, T)
) Überlast, bei der in beiden Fällen Methodenreferenzen mit Parametern übergeben werden.
Ich fand auch an anderer Stelle kein entsprechendes Beispiel.
Ich habe mich versucht:
`Object.TypeOf()`
und var t = typeof(MyMethod);
Keiner von ihnen sind syntaktisch korrekt.
Welche Syntax sollte ich stattdessen verwenden, um eine Referenz an eine Methode mit den Parametern zu übergeben (d. H. Die zweite und dritte Überladung in der obigen Verknüpfung)?
Gibt es einen anderen Weg, als einen Delegaten zu übergeben?
sein Darf ich einen Delegaten müssen und übergeben Sie das, wie in diesem Thread vorgeschlagen: http://StackOverflow.com/Questions/2082615/Pass-method-as-Parameter-using-c-sharp?rq=1 –