FUNC <>中的日期时间

Lik*_*oDo 0 c# func

我有这个:

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)

如何获得当前时间?

RBT*_*RBT 5

您需要像这样调用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()生成当前输出而不是调用委托指向的函数.