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

multithreading - 过早的字符串破坏以及如何避免它?

我正在使用 Delphi 2009 并使用以下代码段得到一些奇怪的错误:

我猜想当超出范围并且在某些时间条件下 DoSomething 会产生最奇怪的结果时,字符串会被破坏。所以第一个问题是:我说的对吗?

第二个问题是:如何规避被破坏的字符串?这样做的正确方法是什么?

提前致谢。

0 投票
9 回答
31786 浏览

c# - 在设计应用程序时如何使用 Func<> 和 Action<>?

我能找到的关于 Func<> 和 Action<> 的所有示例都很简单,如下所示,您可以在其中看到它们在技术上是如何工作的,但我希望看到它们用于解决以前无法解决或无法解决的问题的示例只能以更复杂的方式解决,即我知道它们是如何工作的,并且我可以看到它们简洁而强大,所以我想从更大的意义上理解它们,它们解决了什么样的问题以及我如何在应用程序的设计。

您以何种方式(模式)使用 Func<> 和 Action<> 来解决实际问题?

0 投票
5 回答
6765 浏览

c# - 在 C# 中从字符串创建匿名方法

是否可以在 C# 中从字符串创建匿名方法?

例如,如果我有一个字符串,"x + y * z"是否可以将其转换为某种方法/lambda 对象,我可以使用任意参数调用x它?yz

0 投票
2 回答
153 浏览

c# - ASP.NET 委托和表达式 - 信息请求

根据我的理解,我将 Func 委托的含义解释如下。请在需要时更正它们。

Declaration : Func<int> dg ;

1. 我可以将其解释为“一个代表指向一个返回整数的方法吗?”。

Declaration : Func<int,int> delg1=r=>2*r;

*2。我可以将其解释为“'r' 是一个 lambda 表达式,它本身是一个整数类型的参数,被评估为 '2 * r' 并返回一个 int?.*

Comparison : Delegate and lambda expression

3. 如果 Delegates 和 lambdas 都作为函数指针工作,有什么不同?

Comparison : Are the following two declarations equal?

4. 如果上述两种构造都用于相同的目的,有什么不同?

0 投票
1 回答
2397 浏览

c# - 序列化匿名代表列表

这个问题可能与我的问题非常相似,但我看不到我需要的答案。我有一个名为 的类CASM,它有一个List<Action>. 我想序列化这个类(使用BinaryFormatter或类似的东西)。这个类和Actions 中引用的所有类都有正确的[Serializable][NonSerializable]属性。

尝试序列化时出现问题 - 它给出了这个错误:

<>c__DisplayClass2c是一个自动生成的内部类,它包含我在应用程序中使用的不同类型的匿名委托。但是,正如我们从下图中看到的那样,它不是[Serializable]

替代文字 http://bayimg.com/image/maebbaacj.jpg

更改我的应用程序以使其有效的最佳方法是什么?制作我自己的<>c__DisplayClass2c-type 类并使其可序列化?或者,还有更好的方法?


编辑:最后我只是制作了自己的课程,而不是自动生成的课程。我也帮助调试,实际上有一个描述性的名称,而不仅仅是b__12().

0 投票
4 回答
8195 浏览

c# - 为什么匿名方法中不允许使用 out 参数?

这不是从匿名方法调用带有 ref 或 out 参数的方法的骗局

我想知道为什么匿名方法中不允许使用 out 参数。不允许ref参数对我来说更有意义,但out参数没有那么多。

你对此有何看法

0 投票
2 回答
3681 浏览

c# - lambda 表达式如何在内部工作?

在查找这个问题的答案时:“为什么匿名方法中不允许使用 out 参数? ”我对 lambda 表达式和匿名方法的实际工作方式有点迷茫。

JaredPar 在评论中指出“例如,假设 out 参数引用堆栈上的局部变量。lambda 可以在将来的任意点执行,因此可以在该堆栈帧不再有效时执行”。

我指出如果任何其他变量都不是这种情况......这基本上让我想知道我对 lambda 表达式真正了解什么。

我想到的是这样的:

在那种情况下,我真的不知道发生了什么。obj 是堆栈上的一个引用,它在方法返回时将不再有效,因此匿名方法应该能够(如果可行)实际上知道这是一个引用类型并复制引用而不是值,如果它确实......如果“用例”或多或少相同,为什么 ref params 不起作用?

0 投票
4 回答
3633 浏览

c# - 使用 Func<> 参数将委托对象传递给方法

我有一个接受 Func<> 类型参数的方法 Foo4。如果我传递匿名类型的参数,则不会出错。但是,如果我创建并传递一个引用具有正确签名的方法的“委托”类型的对象,我会得到编译器错误。我无法理解为什么在这种情况下我会出错。

0 投票
6 回答
333 浏览

c# - 好的,这有效。究竟是什么?

我刚刚从一个网站上提取了这个片段,事实证明它正是我需要解决我的特定问题的解决方案。

我不知道它是什么(特别是委托和返回部分)并且来源没有解释它。

希望SO可以启发我。

0 投票
1 回答
3097 浏览

iphone - 是否可以在 Objective-C 中定义匿名选择器?

我希望能够在需要选择器作为参数的任何地方定义一个内联匿名选择器。

这是可能的,还是我必须把它吸起来并定义一个方法?

背景:在我的 iPhone 应用程序中,我需要从另一个线程更新我的 UI。为此,我使用performSelectorOnMainThread:withObject:waitUntilDone:但是,我希望能够获得此功能而无需定义其他方法。