Delegeleri öğreniyorum. Ben sadece her bir dize döndürür ve sonra ben böyle bir temsilci içeride bunları gizlemek 2 fonksiyonlarını yazma:C# delegeleri gizleniyor
delegate string PrinterDelegate();
class Printer
{
public PrinterDelegate BlackColor = PrintBlackColor;
public PrinterDelegate Color = PrintColor;
private static string PrintBlackColor()
{
return "Printing black color";
}
private static string PrintColor()
{
return "Printing with color";
}
public string Returner(Func<string> func)
{
return func();
}
}
(I returner benim soru soracaktır sonra ne diyecekler) böylece program.cs görünüyor böyle:
Printer printer = new Printer();
Func<string> mainPrinter =() => { return printer.BlackColor(); };
string totogate = printer.Returner(mainPrinter);
Console.WriteLine(totogate);
ve tabii i olsun:
konsolunda "siyah renk basımı".
Func<string> mainPrinter =() => { return printer.BlackColor(); };
o Func olduğunu mainPrinter altında BlackColor adlı bir PrinterDelegate dönmek için ne anlama gelir:
Şimdi bu çizgi ne i anlamak mümkün değilim mı? mainPrinter ne tutuyor?
ve mainPrinter'ı Returner'a aktardığımda, dize adı totogate'e geri dönen nedir?
"Siyah renkli yazdırma" ifadesini döndüreceğini biliyorum, ama nasıl?
Tam olarak ne olur?
yürütebileceği, Func dönüş dize türünde ve benim durumumda işlevi kabul eden bir temsilci, ı printer.BlackColor döndü aslında mainPrinter'ın sahip olduğu dönüş türü dizgenin PrintBlackColor işlevidir. Tabii ki Returner'a geçiyorum ve func() elbette PrintBlackColor'a da değiniyor! Yazdıklarımın yanlış olmadığını varsayarak minnettarım. –
N3wbie
Bingo! Birinde aldım. – WyomingDoug