我有以下方法:
protected Func<T> GetMenuItems<T>() where T : IMenuItem, new()
{
return () => _menuItems.GetMenuItem<T>();
}这是我第一次看到这样的语法:,return () => _menuItems.GetMenuItem<T>(),这些括号是用来做什么的,它们是做什么用的?
发布于 2019-12-10 23:10:47
它返回整个表达式() => _menuItems.GetMenuItem<T>();,这是一个λ表示法:
一个不带参数的函数() (想想Foo()),返回_menuItems.GetMenuItem<T>()的结果。
以这种方式返回是很有用的,例如执行“惰性执行”:函数GetMenuItem尚未执行。但是,返回的Func<T>包含执行此内部函数所需的所有信息。
发布于 2019-12-10 23:09:42
这意味着返回一个没有参数的函数"()“,它的主体是
{
return _menuItems.GetMenuItem<T>();
}您还可以以类似的方式返回带有参数的函数:
return (int a) => a++;https://stackoverflow.com/questions/59270212
复制相似问题