我在學習代表。 我簡單地寫2個函數返回每個字符串,然後我隱藏這樣一個委託中:C#代表隱藏
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();
}
}
(我會說什麼武者回歸是後我會問我的問題) 所以看起來的Program.cs像這樣:
Printer printer = new Printer();
Func<string> mainPrinter =() => { return printer.BlackColor(); };
string totogate = printer.Returner(mainPrinter);
Console.WriteLine(totogate);
,當然我得到:
在控制檯中的「打印黑色」。
現在我無法理解這是什麼行:
Func<string> mainPrinter =() => { return printer.BlackColor(); };
什麼意思返回名爲mainPrinter下BlackColor PrinterDelegate這是Func鍵? mainPrinter持有什麼?
當我將mainPrinter傳入到了Returner中時,它返回字符串名稱totogate是什麼?
我知道它會返回「打印黑色」,但如何?
究竟發生了什麼?
因此,在短期,Func鍵是接受我的情況下返回字符串類型和功能的委託,我又回到printer.BlackColor這實際上是返回類型字符串的函數PrintBlackColor,現在mainPrinter成立。當然,我將它傳遞給了Returner,func()當然也指向PrintBlackColor。假設我寫的內容沒有錯,我很感激。 –
N3wbie
賓果!把它在一個。 – WyomingDoug