问题标签 [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 投票
3 回答
4647 浏览

c# - 匿名方法 - C# 到 VB.NET

我需要在终端服务器上实现应用程序的单个 VB.NET 实例。为此,我使用了Flawless Code博客中的代码。它运行良好,除了代码是用 C# 编写的并且使用了 VB.NET 不支持的匿名方法。我需要重写以下内容,以便可以将其用作 VB.NET 中的事件。

0 投票
2 回答
312 浏览

c# - 如何使用匿名方法动态订阅事件?

我正在UserControl使用动态创建许多 sLoadControl(String)并希望订阅它们中的每一个的事件。

我所有的控件都继承了一个Interface需要实现 common 的 common Event

所以我在我的页面加载事件中执行下一步:

如何订阅代表参加此活动?

0 投票
4 回答
1378 浏览

c# - 匿名方法、范围和序列化

假设我有以下代码:

在这种情况下,对象和值的范围会发生什么?由于 x 是一个值类型,它按值传递给 Bar,因此,它的作用域不需要发生任何事情。但是你怎么了?实际评估 b 时,需要保留 y 的值才能返回。是否所有的 Foo 都保留在以后评估 y ?我只能假设 Foo 没有被 GC 处理。

现在假设我们将 Bar 序列化到磁盘,然后再反序列化它。什么实际上已经被序列化了?它是否也对 Foo 进行了序列化?在 Bar 被反序列化之后,发生了什么魔法使得 b 可以被评估?你能解释一下 IL 中发生了什么吗?

0 投票
1 回答
669 浏览

.net-3.5 - 您可以使用 .net 3.5 Action 或 Func 作为 Marshalled 非托管委托吗?

在阅读 .net 中动态调用非托管 dll 之后

我一直在尝试根据自己的喜好修改代码。我创建了一个类,它实现了 idisposable 来包装加载调用并在需要时释放它们。但是,如果可以使用匿名委托,我似乎无法弄清楚语法。

最后一行抛出一个参数异常,指出指定的 Type 不能是泛型类型定义。有没有办法解决这个问题,还是我必须提供一个命名的委托来做任何非托管的事情?

任何对默认情况下使用非托管代码在 Windows 中可以执行的操作感兴趣的人的参考 -链接 (创建快捷方式,动态加载 DLL)

0 投票
7 回答
21906 浏览

c# - 如何取消注册“匿名”事件处理程序

假设我监听一个事件:

现在如何取消注册此活动?或者只是让内存泄漏?

0 投票
4 回答
62442 浏览

c# - C# - 匿名函数和事件处理程序

我有以下代码:

请注意我如何将我的事件成员 (FoundStep) 注册到本地就地匿名函数。

我的问题是:“FindStepByType”函数何时结束 - 匿名函数会自动从事件的委托列表中删除,还是我必须在退出函数之前手动删除它?(我该怎么做?)

我希望我的问题很清楚。

0 投票
1 回答
2649 浏览

c# - 实现带参数调用泛型函数的超时

我正在尝试使用 Action 委托类型来在第 3 方 COM dll 中调用的方法挂断时强制超时。经过大量搜索,我发现我可以使用 Action<> 或 Func<> 并传递多达 4 个通用参数,具体取决于调用的方法是否返回参数。

对于这种情况,我希望对一系列返回 void 并采用 2 个参数的方法调用超时。下面是我整理的代码,但我无法确定如何正确编码 BeginInvoke,提示我放置“T arg1”和“T arg2”但是当我输入 param1 或 param2 VS2008 告诉我这些值是不确定的。

这是到目前为止的代码:

任何关于这里有什么问题的想法都将不胜感激。

以下是根据第一条评论重新编辑的代码

感谢您到目前为止的输入。以下编译。我似乎无法正确调用它的语法。

我试图通过调用以下方法来测试它:

但是下面的代码是不正确的:

更新的代码 我已经发布了代码供论坛用户将来参考。下面的代码似乎工作。唯一要检查的一点是,我的单元测试导致在我们“action.EndInvoke(result)”处第二次在同一个函数上调用例程时引发异常,因为结果与操作无关。这可能是因为我的 LongProcess 只是一个 Thread.sleep,在这种情况下,这意味着在我进行第二次调用时它还没有中止。

0 投票
5 回答
2181 浏览

c# - 为同一个匿名方法创建两个委托实例不相等

考虑以下示例代码:

您会想象这两个委托实例将比较相等,就像使用良好的旧命名方法方法(new Action(MyMethod))一样。它们不相等,因为 .NET Framework 为每个委托实例提供了一个隐藏的闭包实例。由于这两个委托实例都将其 Target 属性设置为各自的隐藏实例,因此它们不进行比较。一种可能的解决方案是为匿名方法生成的 IL 将当前实例(this 指针)存储在委托的目标中。这将允许委托进行正确比较,并且从调试器的角度来看也有帮助,因为您将看到您的类是目标,而不是隐藏类。

您可以在我提交给 Microsoft 的错误中阅读有关此问题的更多信息。错误报告还举例说明了我们为什么使用此功能,以及为什么我们认为应该更改它。如果您也觉得这也是一个问题,请通过提供评级和验证来帮助支持它。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=489518

您能看出不应更改功能的任何可能原因吗?您认为这是解决问题的最佳做法,还是建议我采取不同的方法?

0 投票
8 回答
581 浏览

c# - 匿名方法/功能:基本特征还是违反 OO 原则?

最近 perl 和 C# 等主流语言对匿名方法/函数的发展是重要的,还是违反 OO 原则的奇怪特性?

最近的库,比如英特尔的线程构建模块的最新版本以及微软的 PPL 和 Linq 依赖于这些东西是一件好事,还是不是?

当前拒绝匿名方法/函数的语言,如 Java,是在坚持纯粹的 OO 模型方面做出明智的选择,还是因为缺乏基本的编程特性而落后?

0 投票
3 回答
941 浏览

php - PHP 将外部类的方法导入 MyClass

想知道这在 PHP Land 中是否可行:

假设我有一堂课如下:

和另一个类:

'anotherClass' 有 3500 行长,我只想在 myClass 中使用单个 'addFive' 方法。

  • 有没有办法可以导入函数并能够在我的类中调用它,并且 $this 会引用 myClass 对象?
  • 这是好/坏的做法吗?
  • (可选)这在 Python 中是如何工作的?(只是好奇,因为我开始学习 Python)