问题标签 [delegates]

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 回答
350 浏览

c# - IEnumerable 中求和、平均、连接等项目的实现选项

我正在寻找最短的代码来创建对 IEnumerable 中的项目执行常见操作的方法。

例如:

  1. 对属性求和 - 例如 IEnumerable<IPupil> 中的 IPupil.Age
  2. 平均一个属性 - 例如 IEnumerable<IPupil> 中的 IPupil.Age
  3. 构建 CSV 字符串 - 例如 IEnumerable<IPupil> 中的 IPupil.Name

我对解决这些示例的各种方法感兴趣:foreach(长手)、委托、LINQ、匿名方法等......

抱歉措辞不佳,我无法准确描述我所追求的!

0 投票
2 回答
3004 浏览

c# - 如何在接口 C# 中调用事件?

所以我有一个设计问题。我有一个具有代表和事件的鼠标类。即MouseButtonPressed、MouseMoved。并且被状态引擎调用。

我想要发生的是创建一个像 IClickable 或 IDraggable 或 somthing 这样的接口,并在这些接口内有事件,当鼠标事件被调用时会被调用。

然后在 MouseDevice 类中它有

所以基本上我希望在调用 buttonClicked 时调用 Clicked。

有没有办法做到这一点?

0 投票
1 回答
1714 浏览

c# - 生成 C# 委托方法存根

有人知道如何自动创建委托存根方法吗?

在 WPF 中,我似乎经常不得不传递代表。我希望能够键入一个不存在的方法名称并自动生成一个方法存根……目前我不得不不断地引用文档来获取委托签名,然后手动创建具有匹配签名的方法。

0 投票
5 回答
36477 浏览

javascript - 获得原始目标的最佳方法

什么是 jQuery 之类的和/或在 jQuery(或一般的浏览器 javascript 中)获取事件的原始目标的最佳实践方式。

我一直在使用这样的东西

这有效,但我对两行特征嗅探不满意。有没有更好的办法?

0 投票
7 回答
11980 浏览

c# - 是否可以将事件处理程序放在与调用者不同的线程上?

假设我有一个名为 Tasking 的组件(我无法修改),它公开了一个方法“DoTask”,该方法执行一些可能冗长的计算并通过事件 TaskCompleted 返回结果。通常这是在用户获得结果后关闭的窗口形式中调用的。

在我的特定场景中,我需要将一些数据(数据库记录)与 TaskCompleted 返回的数据相关联,并使用它来更新数据库记录。

我调查了使用 AutoResetEvent 来通知事件何时被处理。问题是 AutoResetEvent.WaitOne() 将阻塞并且永远不会调用事件处理程序。通常 AutoResetEvents 被称为是一个单独的线程,所以我猜这意味着事件处理程序与调用的方法位于同一线程上。

本质上,我想通过阻塞将异步调用(结果通过事件返回)转换为同步调用(即从另一个类调用 DoSyncTask),直到事件被处理并且结果放置在事件处理程序都可以访问的位置以及调用启动异步调用的方法的方法。

我只需要在不调用 Application.Run 且 ApplicationContext 对象不可用的窗口服务中复制该行为。

0 投票
4 回答
6387 浏览

c# - 创建一个函数并在一行 C# 代码中调用它

我可以在一行代码中动态创建一个函数并调用它(将值传递给它)吗?

澄清:我一直在寻找一些可以让我创建一个匿名函数然后直接调用它的方法。有点:

或类似的东西(我知道上面的代码无法编译,但我想要一些接近的东西)。

0 投票
12 回答
1398 浏览

c# - C# - 有人能告诉我为什么以及在哪里应该使用委托吗?

我想我将 C# 中委托的概念理解为指向方法的指针,但我找不到任何好的例子来说明在哪里使用它们是个好主意。有哪些例子对于代表来说更优雅/更好,或者不能使用其他方法解决?

0 投票
3 回答
232 浏览

c# - 分配事件的区别是什么……正确的方法?

你能告诉我这些附加事件处理程序的方法有什么区别吗?

0 投票
2 回答
402 浏览

c# - 多对多过滤器

今天我们遇到了一个非常简单的问题,而亲爱的谓词使这个问题变得更加简单。我们有一种事件日志,并希望使用标准列表过滤它的客户端(Windows 窗体)。我们首先实现了按多个类别进行过滤。

下一步是实现几个其他过滤器。您是否知道一种将这些概括为可能不必为每个过滤器编写一个方法的好方法?或者至少是一种干净的方式来获得我们想要同时应用的过滤器的动态列表。

客户端仍在框架 3.0 上,因此没有 LINQ。

更新: 我很难决定我的解决方案应该归功于谁。Marc 有一些不错的想法,并且非常擅长解释它们。如果我能更好地解释我的问题,我很可能会从他那里得到答案。最终,是 cmartin 提供的通用 Filter 类让我走上了正轨。下面使用的过滤器类可以在 cmartins 的答案和您自己梦想的用户类中找到。

0 投票
2 回答
4849 浏览

c# - 什么构成“冗余委托创建”?

我在课堂上注册了一个活动,并且像往常一样,我很懒惰,只使用 Visual Studio 2008 Pro 中内置的自动完成功能,它会自动创建委托创建及其关联的方法。

通常,当 Visual Studio 为我生成事件处理程序时,我不会三思而后行,但后来我收到了 Refactor 的推荐!赞成“删除冗余代表创建”。该建议的结果是:

在什么情况下创建委托是多余的,什么时候创建委托合适?

谢谢。