问题标签 [anonymous-methods]

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 投票
5 回答
48390 浏览

.net - DataTable.Select vs DataTable.rows.Find vs foreach vs Find(谓词)/拉姆达

我有一个缓存在内存中的数据表/集合,我想用它作为源来为自动完成文本框生成结果(当然使用 AJAX)。我正在评估各种快速获取数据的选项。数据表中集合/行中的项目数可能从 10000 到 2,000,000 不等。(所以我们不会被转移,暂时假设已经做出决定,我有足够的内存,我将使用缓存而不是数据库查询)

我对此处理有一些额外的业务逻辑;我必须根据priority集合中的列(int)对自动完成列表进行优先级排序。因此,如果我有人搜索Micro并且我得到 20 个以开头的单词/句子的结果,Micro那么我会选择具有最高优先级的前 10 个结果项目。(因此需要有一个与字符串值关联的优先级属性)。

集合项目已按字母顺序排序。

在这种情况下,最好的解决方案是什么。
1.使用DataTable.Select (
。2 .使用
DataTable.Rows.Find ( _ _性能与否

0 投票
6 回答
19780 浏览

vb.net - VB.NET 有匿名函数吗?

从我在 google 上可以找到的内容来看,VB.NET 只有一个语句 lambda,而不是多语句匿名函数。但是,我阅读的所有文章都在谈论旧版本的 VB.NET,我找不到比 vs2008 beta 1 或 2 更新的任何东西。

所以问题是:我如何在 VB.NET 中做到这一点?

C#代码:

0 投票
9 回答
39004 浏览

c# - 何时不使用 lambda 表达式

Stack Overflow 上正在回答很多问题,成员指定如何使用lambda 表达式解决这些现实世界/时间问题。

我们是否过度使用它,我们是否正在考虑使用 lambda 表达式对性能的影响?

我发现了几篇文章探讨了 lambda vs 匿名委托 vs for/foreach循环的性能影响,结果不同

  1. 匿名委托 vs Lambda 表达式 vs 函数调用性能
  2. foreach 与 List.ForEach 的性能
  3. .NET/C# 循环性能测试(FOR、FOREACH、LINQ 和 Lambda)
  4. DataTable.Select 比 LINQ 快

选择合适的解决方案时应该有什么评价标准?除了使用 lambda 时代码更简洁、更易读的明显原因。

0 投票
5 回答
25820 浏览

c# - 带有 lambda 表达式和匿名方法的 ThreadPool.QueueUserWorkItem

将两个参数传递给线程池上的新线程有时会很复杂,但似乎使用 lambda 表达式和匿名方法,我可以做到这一点:

现在,我当然简化了这个例子,但以下几点很关键:

  • 传递的字符串对象是不可变的,因此是线程安全的
  • s1 和 s2 变量在 try 块的范围内声明,我在将工作排队到线程池后立即退出,因此 s1 和 s2 变量在此之后永远不会修改。

这有什么问题吗?

另一种方法是创建一个新类,该类实现具有 3 个成员的不可变类型:test、s1 和 s2。在这一点上,这似乎是额外的工作,没有任何好处。

0 投票
1 回答
469 浏览

anonymous-methods - CodeDom - 我可以生成一个匿名方法吗?

我找不到任何方法来生成匿名方法。有任何想法吗?

0 投票
2 回答
5063 浏览

vb.net - 使用 vb.net Action(Of T) 和 lambda 声明匿名方法时出现问题

Donno 出了什么问题,但 Module2 工作得很好!

0 投票
4 回答
4400 浏览

delphi - 匿名方法的范围

匿名方法的一个好处是我可以在调用上下文中使用本地变量。有什么理由为什么这不适用于参数和函数结果?

当然是非常人为的例子,但我遇到了一些这很有用的情况。

当我尝试编译它时,编译器抱怨他“无法捕获符号”。此外,当我尝试这样做时,我遇到了一个内部错误。

编辑我刚刚意识到它适用于正常参数,如

这不是和其他情况一样有问题吗?谁保证每当执行匿名方法时引用仍然指向活动对象?

0 投票
1 回答
2221 浏览

c# - 隐式转换为 Func

假设我有一个IMyInterface<T>简单描述一个功能的接口:

我可以将其替换为Func<T, T>,但出于语义原因,我想要该界面。我是否可以在该接口之间定义一个隐式转换,Func<T,T>以便我可以将匿名委托或 lambda 作为参数传递给接受此接口作为参数的函数,就像我使用的Func<T,T>那样?

为了演示,使用上面声明的接口,我想要一个这样的函数:

我可以这样称呼:

结果将是“hello world”。

0 投票
3 回答
1444 浏览

c# - 如何在匿名方法中释放/处置/销毁捕获的变量?

我正在使用匿名方法来处理 COM 对象中的事件。一旦程序终止,我在匿名方法中使用的资源似乎没有被“正确关闭”,因为我看到的每个资源都会出现第一次机会异常 (InvalidComObjectException)。我想这没什么大不了的,但感觉并不“正确”。

我无法理解在匿名方法范围之外访问那些捕获的变量的方法(无论如何,你不应该这样做)。如何在退出应用程序之前关闭/处置资源?

编辑:经过简短的重新阅读后,我可能不清楚我在这里做什么。我正在编写一个使用 COM 对象的托管应用程序。

进一步编辑:我正在使用ArcGIS Engine来操作 GIS 数据。在这种特殊情况下,我使用 ILayerEvents_Event 中的 VisibilityChanged 事件来监视 GIS 图层何时可见或不可见。该事件仅传递一个布尔值(可见或不可见)而不是图层名称,因此需要为每个图层创建一个方法来创建其可见性状态更改。由于我正在处理动态层,因此我需要一种以某种方式动态执行此操作的方法,因此需要匿名方法。

在 anonymoua 方法中,我有一个 ILayer 变量,它从外部循环(在 ILayer 上下文中)获取 ILayerEvents_Event,以便我知道我正在使用哪个层。正是在这一点上,我被困住了。在我退出应用程序之前,该功能正常工作,一切都很好,让这 20 多个引用挂在那里,无处可去,只有一个例外。

我不知道用户何时会最后一次隐藏/显示图层,因此无法在最后一次将内容归零。我想我可以保持原样(或者,也许有比匿名方法更好的方法),因为它似乎没有伤害任何东西。我只是觉得我错过了一些东西。

0 投票
3 回答
13908 浏览

c# - 匿名方法和委托

我试图理解为什么 BeginInvoke 方法不接受匿名方法。

它告诉我'无法从'匿名方法'转换为'System.Delegate',而当我将匿名方法转换为委托时它确实有效?