Kann mir jemand die Vorteile der Verwendung eines Delegaten im Gegensatz zum Aufruf der Funktion selbst, wie unten gezeigt (oder mit anderen Worten, warum Option A über Option B wählen) sagen? Ich habe letzte Nacht jemandes Linq-Code angeschaut und sie hatten etwas Ähnliches wie Option A, aber es wurde verwendet, um eine kompilierte Linq-Abfrage zurückzugeben.Func Delegat vs Funktion
Ich realisiere, dass der ehemalige kann jetzt zu anderen Funktionen weitergegeben werden .. nur nicht sicher, seine Praktikabilität. BTW, merke ich, dass das nicht kompiliert werden würde .. unkommentiert eine der Funktionen vor dem Posten. TYIA
class Program
{
static void Main(string[] args)
{
Console.WriteLine(SayTwoWords("Hello", "World"));
Console.ReadKey();
}
// Option A
private static Func<string, string, string>
SayTwoWords = (a, b) => String.Format("{0} {1}", a, b);
// Option B
private static string SayTwoWords(string a, string b)
{
return String.Format("{0} {1}", a, b);
}
}
************ EDIT ************
nicht sicher, ob es meine Frage besser erklärt, aber hier ist ein Beispiel von der Art des Codes, den ich darüber nachgedacht ursprünglich bekam:
public static class clsCompiledQuery
{
public static Func<DataContext, string, IQueryable<clsCustomerEntity>>
getCustomers = CompiledQuery.Compile((DataContext db, string strCustCode)
=> from objCustomer in db.GetTable<clsCustomerEntity>()
where objCustomer.CustomerCode == strCustCode
select objCustomer);
}
gibt es einen Vorteil, um eine Funktion auf diese Weise zu schreiben?
möglich Duplikat von [Ich bekomme immer noch keine Delegierten] (http://stackoverflow.com/questions/399222/i-still-dont-get-delegates) –