我在学习代表。 我简单地写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