首页 > 解决方案 > C#中的return()是什么意思?

问题描述

我有以下方法:

protected Func<T> GetMenuItems<T>() where T : IMenuItem, new()
{
    return () => _menuItems.GetMenuItem<T>();
}

这是我第一次看到这种语法:return () => _menuItems.GetMenuItem<T>()这些括号是干什么用的,它们有什么作用?

标签: c#.net-core

解决方案


它返回整个表达式() => _menuItems.GetMenuItem<T>();,它是一个lambda表示法:

一个不带参数的函数()(想想Foo()),返回_menuItems.GetMenuItem<T>().

以这种方式返回很有用,例如执行“延迟执行”:函数 GetMenuItem 尚未执行。然而,Func<T>返回的具有执行此内部函数的所有信息。


推荐阅读