问题标签 [func]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
245 浏览

php - 面向对象查询功能

如果这听起来像一个非常愚蠢的问题,我很抱歉,但我刚刚开始掌握面向对象编程的概念,我对 php 的单例模式有点困惑。

我将如何合并查询以及将提取的行中保存为变量的结果保存到单例模式中?

例如,如何合并下面的代码?

0 投票
4 回答
4215 浏览

c# - 封装动作和功能?

我正在尝试为某种 IExecutable 接口进行设计。我不会详细介绍,但重点是我有几个需要从基类执行的操作。它们可能采用不同的参数(没什么大不了的),它们可能/可能不会返回值。

到目前为止,这是我的设计:

到目前为止,我的每一个具体行动都需要是来自 ActionWithResultBase 或 ActionWithoutResult 基础的孩子,但我真的不喜欢这样。如果我可以将 Execute 的定义移到 ActionBase 中,考虑到具体类可能会或可能不会返回值,我将实现我的目标。

有人告诉我这可以通过使用 Func 和 Action 来完成,对此我完全同意,但我无法找到一种方法将其放入一个类中,以便调用者知道该操作是否会返回一个值或不是。

简介:我想做类似的事情:

0 投票
3 回答
396638 浏览

c# - Func vs. Action vs. Predicate

通过真实的例子及其使用,有人可以帮助我理解:

  1. 我们什么时候需要Func<T, ..>委托?
  2. 我们什么时候需要Action<T>委托?
  3. 我们什么时候需要Predicate<T>委托?
0 投票
3 回答
632 浏览

c#-4.0 - 在 C# 4.0 中将 'TimeOut' 参数添加到 'Func<>'

使用C# 4.0功能我想要一个通用包装器来封装函数TimeOut并向它们添加参数。

例如,我们有一个类似的函数:

使用Func我们有:

这很好,甚至调用函数Sync( Invloke) 或Async( BeginInvoke)。现在考虑将 aTimeOut添加到此行为中,如果DoLengthyOperation()在指定时间内返回我们已经true返回,否则false.

就像是:

0 投票
5 回答
1056 浏览

c# - 使用 Func<>(或 Action<>)还是创建自己的委托?

哪一个更好,比如方法中的参数类型(与 LINQ 无关)。显然 Func 更好,因为它更简单,更具描述性,如果每个人都使用它,一切都会变得兼容(好)。但是我注意到微软在某些库中使用了自己的委托,例如事件处理程序。那么,它们各自的优缺点是什么?我应该什么时候使用它?

编辑:

  • 显然 Func<> 仅在 3.5 中可用,所以这可能是我看到非 Func 代表的主要原因。还有其他不使用 Func 的理由吗?(例如:是来自 .NET4)

  • 同样的问题也适用于 Action<>

0 投票
2 回答
4040 浏览

c# - 即使签名匹配,也无法将一种类型的委托分配给另一种类型

我病态的好奇心让我想知道为什么以下失败:

0 投票
8 回答
17788 浏览

c# - 手动创建委托与使用 Action/Func 委托

今天我正在考虑宣布这一点:

但为什么不使用这个:

或者如果ChangeListAction没有返回值,我可以使用:

delegate那么用关键字声明委托的优势在哪里呢?

是因为 .NET 1.1,随着 .NET 2.0Action<T>和 .NET 3.5 的出现Func<T>

0 投票
5 回答
464 浏览

c# - 整合编码风格:Funcs、私有方法、单一方法类

我们目前有 3 名开发人员,他们的风格有些冲突,我正在寻找一种为王国带来和平的方法......

编码员:

Foo 1 : 喜欢在公共方法中使用 Func 和 Action。他使用动作来消除冗长的方法调用和 Func 来执行简单的任务,这些任务可以用 1 或 2 行来表达,并且将在整个代码中经常使用

优点:他的代码主体简洁且可读性强,通常每个类只有一两个公共方法,很少有私有方法。

缺点:方法的开头包含其他开发人员不喜欢阅读的 lambda 富代码块;并且,有时,可以包含其他开发人员真的不喜欢阅读的高阶函数。


Foo 2:喜欢为(几乎)公共方法必须做的所有事情创建私有方法。

优点:公共方法仍然很小且可读(对所有开发人员)。

缺点:私有方法很多。使用调用其他私有方法的私有方法,调用...等,等等。使代码难以导航。


Foo 3:喜欢为每个需要执行的非平凡任务创建一个具有单个公共方法的公共类,然后将它们依赖注入到其他对象中。

优点:易于测试,易于理解(一个对象,一项职责)。

缺点:项目被类乱七八糟,打开多个类文件以了解代码的作用使导航变得尴尬。


如果能充分利用所有这些技术,那就太好了……

Foo-1 具有非常好的、可读的(几乎类似于 dsl)的代码......在大多数情况下,除了在方法开始时聚集在一起的所有 Action 和 Func lambda 恶作剧。

Foo-3 具有高度可测试和可扩展的代码,对于某些解决方案来说只是感觉有点“大括号”,并且有一些代码导航问题(在 VS 中不断按 F12 并打开 5 个其他 .cs 文件以找出单个方法)。

还有 Foo-2... 嗯,我不确定我是否喜欢这个包含 2 个公共方法和 12 个私有方法的巨大 .cs 文件,除了它更容易让初级人员深入研究。

我承认我过分简化了对这些编码风格的解释;但是,如果有人知道任何模式、实践或外交策略可以帮助我们三个开发人员团结起来(而不只是告诉他们中的任何一个“停止它!”),那就太好了。

从可行性的角度来看:

  • Foo-1 的风格遇到了最大的阻力,因为一些开发人员发现 lambda 和/或 Func 难以阅读。
  • Foo-2 的风格遇到的阻力较小,因为它很容易陷入。
  • Foo-3 的风格需要最具前瞻性的思维,时间紧迫时难以执行。

关于可以使这项工作的某些编码样式或约定的任何想法?

0 投票
1 回答
1691 浏览

c# - Invoke in Action 方法的好方法

我如何调用项目以便 TestAction 写出“s.Hello”?现在我什么都不做,它跳过了“action = s..”这一行。

或者是另一种方式来做到这一点?因为我不想返回任何代码,所以我使用 Action 而不是 Func

我刚开始与 Action 合作。

0 投票
2 回答
4071 浏览

c# - LINQ to SQL - 按天/周/月分组

一段时间以来,我一直在为这个问题挠头。假设我做了一个扩展方法,按日期对项目列表进行分组,我想更改可能的分组,以便结果可以按日、周或月分组。

我想出了以下内容,但我不断收到以下错误:

方法“System.Object DynamicInvoke(System.Object[])”不支持 SQL 转换

方法:

我假设在查询中使用 Func 会导致错误,是否可以生成这样的代码?

PS我仍在尝试围绕Func和Expressions :)