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