我在这里发布它而不是代码审查,因为我想知道执行程序是否因此而表现不同(可能是微妙的)。
是一种私人方法:
private int Foo()
{
return Bar().Bat();
}
与私人Func有什么不同?
private Func<int> Foo = () => Bar().Bat();
我这样做的唯一原因是使代码更紧凑。
答案 0 :(得分:2)
没有太大区别,但
您定义模板化类型int
(可能类型安全,即使它在当前提供的代码中不可见)
你可以像参数一样使用该函数传递给另一个函数,你可以自然地在第一个函数中执行,但在第一种情况下,你需要声明一个delegate
类型。 / p>
第三个更紧凑,但第一个是更多可读,imo,所以如果你不需要一些“功能”的东西,我会选择第一个。
答案 1 :(得分:0)
Func
是delegate
s并封装了任何具有相同signatur og Func
的方法。用于分层我建议您使用Private Methods
答案 2 :(得分:0)
使用Func,您实际上是在保存对匿名方法的引用。编译器从中创建一个命名方法,而你正在做的就是保存一个额外的引用。
这不是太大的交易,没有太大的区别,除了标准是命名方法。它更具逻辑性和可读性。