我有这个:
Func<DateTime> getDateTime = () => DateTime.Now;
Console.WriteLine(getDateTime);
Run Code Online (Sandbox Code Playgroud)
但作为输出我得到这个:
System.Func`1[System.DateTime]
Run Code Online (Sandbox Code Playgroud)
如何获得当前时间?
您需要像这样调用lambda表达式来打印当前时间戳:
Func<DateTime> getDateTime = () => DateTime.Now;
Console.WriteLine(getDateTime());
Run Code Online (Sandbox Code Playgroud)
它打印在控制台上的输出下面:
20-07-2017 15:46:10
Run Code Online (Sandbox Code Playgroud)
的getDateTime变量是指向一个函数(在这种情况下lambda表达式)委托类型.当前输出中的后退System.Func`1[System.DateTime]表示它是基于通用的委托.
Console.WriteLine方法没有任何带有委托类型参数的重载,因此它只是调用getDateTime.ToString()生成当前输出而不是调用委托指向的函数.