问题标签 [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.
.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 ( _
_性能与否?)
vb.net - VB.NET 有匿名函数吗?
从我在 google 上可以找到的内容来看,VB.NET 只有一个语句 lambda,而不是多语句匿名函数。但是,我阅读的所有文章都在谈论旧版本的 VB.NET,我找不到比 vs2008 beta 1 或 2 更新的任何东西。
所以问题是:我如何在 VB.NET 中做到这一点?
C#代码:
c# - 何时不使用 lambda 表达式
Stack Overflow 上正在回答很多问题,成员指定如何使用lambda 表达式解决这些现实世界/时间问题。
我们是否过度使用它,我们是否正在考虑使用 lambda 表达式对性能的影响?
我发现了几篇文章探讨了 lambda vs 匿名委托 vs for
/foreach
循环的性能影响,结果不同
- 匿名委托 vs Lambda 表达式 vs 函数调用性能
- foreach 与 List.ForEach 的性能
- .NET/C# 循环性能测试(FOR、FOREACH、LINQ 和 Lambda)。
- DataTable.Select 比 LINQ 快
选择合适的解决方案时应该有什么评价标准?除了使用 lambda 时代码更简洁、更易读的明显原因。
c# - 带有 lambda 表达式和匿名方法的 ThreadPool.QueueUserWorkItem
将两个参数传递给线程池上的新线程有时会很复杂,但似乎使用 lambda 表达式和匿名方法,我可以做到这一点:
现在,我当然简化了这个例子,但以下几点很关键:
- 传递的字符串对象是不可变的,因此是线程安全的
- s1 和 s2 变量在 try 块的范围内声明,我在将工作排队到线程池后立即退出,因此 s1 和 s2 变量在此之后永远不会修改。
这有什么问题吗?
另一种方法是创建一个新类,该类实现具有 3 个成员的不可变类型:test、s1 和 s2。在这一点上,这似乎是额外的工作,没有任何好处。
anonymous-methods - CodeDom - 我可以生成一个匿名方法吗?
我找不到任何方法来生成匿名方法。有任何想法吗?
vb.net - 使用 vb.net Action(Of T) 和 lambda 声明匿名方法时出现问题
Donno 出了什么问题,但 Module2 工作得很好!
delphi - 匿名方法的范围
匿名方法的一个好处是我可以在调用上下文中使用本地变量。有什么理由为什么这不适用于参数和函数结果?
当然是非常人为的例子,但我遇到了一些这很有用的情况。
当我尝试编译它时,编译器抱怨他“无法捕获符号”。此外,当我尝试这样做时,我遇到了一个内部错误。
编辑我刚刚意识到它适用于正常参数,如
这不是和其他情况一样有问题吗?谁保证每当执行匿名方法时引用仍然指向活动对象?
c# - 隐式转换为 Func
假设我有一个IMyInterface<T>
简单描述一个功能的接口:
我可以将其替换为Func<T, T>
,但出于语义原因,我想要该界面。我是否可以在该接口之间定义一个隐式转换,Func<T,T>
以便我可以将匿名委托或 lambda 作为参数传递给接受此接口作为参数的函数,就像我使用的Func<T,T>
那样?
为了演示,使用上面声明的接口,我想要一个这样的函数:
我可以这样称呼:
结果将是“hello world”。
c# - 如何在匿名方法中释放/处置/销毁捕获的变量?
我正在使用匿名方法来处理 COM 对象中的事件。一旦程序终止,我在匿名方法中使用的资源似乎没有被“正确关闭”,因为我看到的每个资源都会出现第一次机会异常 (InvalidComObjectException)。我想这没什么大不了的,但感觉并不“正确”。
我无法理解在匿名方法范围之外访问那些捕获的变量的方法(无论如何,你不应该这样做)。如何在退出应用程序之前关闭/处置资源?
编辑:经过简短的重新阅读后,我可能不清楚我在这里做什么。我正在编写一个使用 COM 对象的托管应用程序。
进一步编辑:我正在使用ArcGIS Engine来操作 GIS 数据。在这种特殊情况下,我使用 ILayerEvents_Event 中的 VisibilityChanged 事件来监视 GIS 图层何时可见或不可见。该事件仅传递一个布尔值(可见或不可见)而不是图层名称,因此需要为每个图层创建一个方法来创建其可见性状态更改。由于我正在处理动态层,因此我需要一种以某种方式动态执行此操作的方法,因此需要匿名方法。
在 anonymoua 方法中,我有一个 ILayer 变量,它从外部循环(在 ILayer 上下文中)获取 ILayerEvents_Event,以便我知道我正在使用哪个层。正是在这一点上,我被困住了。在我退出应用程序之前,该功能正常工作,一切都很好,让这 20 多个引用挂在那里,无处可去,只有一个例外。
我不知道用户何时会最后一次隐藏/显示图层,因此无法在最后一次将内容归零。我想我可以保持原样(或者,也许有比匿名方法更好的方法),因为它似乎没有伤害任何东西。我只是觉得我错过了一些东西。
c# - 匿名方法和委托
我试图理解为什么 BeginInvoke 方法不接受匿名方法。
它告诉我'无法从'匿名方法'转换为'System.Delegate',而当我将匿名方法转换为委托时它确实有效?