首页 > 解决方案 > 在不使用 lambda 的情况下,是否有更短的方法在 C# 中声明 Func(委托)变量?

问题描述

到目前为止,我知道使用委托声明 Func 变量的两种不同方法。

技术1

var AddTen = new Func<int, int>(delegate (int input)
{
    return input + 10;
});

技巧2

Func<int, int> AddTen = delegate (int input)
{
    return input + 10;
};

在不使用 lambda 表达式的情况下,是否有更短的方法来定义 Func?Func<int, int>即使看起来类型可以从delegate(int) { return int; }

标签: c#delegates

解决方案


我知道的唯一方法是使用闭包。那么至少参数可以省略。

int input = 10;
Func<int> AddTen = delegate ()
{
        return input + 10;
};

我不明白为什么不使用 lambda。在这种情况下,lambdas 是缩短它的选择方法。


推荐阅读