问题标签 [anonymous-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.
c# - 匿名代表如何在 ControllerActionInvoker.InvokeActionMethodWithFilters 中工作
我正在尝试从 PHP 迁移到 ASP.NET,并在此过程中尝试了解 MVC 的工作原理,但是我坚持使用 ControllerActionInvoker.InvokeActionMethodWithFilters,因为我不明白发生了什么。
我正在努力的片段如下:
完整的源代码可以在以下 URL 中找到: https ://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.Mvc/ControllerActionInvoker.cs#L371
特别是,我不确定以下内容在做什么:
因为我以前从未见过包含以下内容的行:continuation = () =>
我似乎也无法在 Google 上找到答案,因为它不将 = () => 识别为搜索词。
我对以下具有相似语法的代码片段感到困惑:
来自 PHP 背景,我以前没有见过这种语法,而且我在网上阅读的资源也没有真正让我明白。
基于以下 SO 问题: delegate keyword vs. lambda notation
如果我要重写以下...
会不会是这样...
第二个片段也是如此......
如果我没记错的话应该是...
还是我仍然没有得到它?
c# - C# 的 AnonymousDelegate 帮助
我需要帮助
VB$AnonymousDelegate_0<
给我一个错误
c# - 字段类型比字段更难访问
我有以下声明:
我正在像这样消费它:
在不同的班级。它不编译,它说“不一致的可访问性:字段类型......比字段 Helper.myFunc 更难访问” 我知道它与匿名声明有关,但如何解决?
c# - 带参数的函数委托 c#
我正在寻找使用函数委托调用带参数的方法的方法。
您可以在该位置使用函数委托,而不是调用 processOperationB。但寻找可以实现以下方式的任何方式。
c# - 通用方法:没有从 int 到 IComparable 的装箱转换
我正在研究一种二进制搜索算法,它具有以下参数:
现在,当我传递这些论点时:
它说 int 类型不能用作参数 F(我的印象是泛型类型与正在传递的类型无关)并且没有从 int 到 IComparable 的“装箱”转换。
我试图做的事情:基本上,我希望这个方法接受可以是各种数字类型(整数、双精度等)的搜索键,所以在通用方法中我试图声明两种类型。
关于此代码: func 委托代表对象的属性,即 car.Name (string)、car.Wheels(int),它们是不同类型的。我有点希望根据正在传递的 propertyFields 类型以某种方式推断键数据类型,但这似乎太复杂了,所以我尝试让它 F Key 接受各种类型,并确保我正在传递正确的类型。
我不知道这一切听起来是否令人困惑,但如果您对我的任何代码有疑问,请随时提问。
编辑:当我调用 BinarySearch 方法时发生错误。
编辑2:对于propertyField,我将其作为参数传递:c => c.Longitude(或任何其他对象属性)。
c# - 如何将 SelectedValueChanging 事件添加到组合框
我需要继承 ComboBox 以添加新事件 OnSelectedValueChanging()。当用户尝试更改组合框的当前选定值时,应触发此事件。此事件也应该是可取消的(例如,用户可以在 FormClosing 事件中使用 e.cancel)
c# - 无法将匿名委托分配给签名委托
我正在寻找一种方法来将列表中的不同代表分配给MethodInfo
's 而无需事先了解有关返回类型的信息。下面是我正在使用的代码。评论提供了有关正在发生的事情的更多信息。这是一段很长的代码,但我已经尽可能地减少了它。
主要片段
支持类/代码
如果您需要有关支持类的更多信息,请参阅下面的代码。此外,这是一个独立的程序,应该可以按原样运行。
c# - 当本地 stackalloc 上的数据时,匿名委托不为每次迭代使用新的本地
在 C# 中使用匿名delegate
s 时,CLR 将在堆上为使用的变量生成本地(例如当前范围内的变量)的副本。对于当前作用域的每个声明变量,这样的局部变量将被放入堆中。
您可以在此示例中看到此行为:
该程序的输出是(最后 5 个条目的顺序可能会有所不同,而在第一个条目中,也可能得到小于 5 的数字。):
在方法中调用时,C# 应始终生成本地的新副本。这在本示例中按预期工作:
输出:
这是有问题的情况:但是,将变量分配给保留区域时它不起作用:stackalloc
输出:
使用常规局部变量时 - 只需替换call
上面示例中的方法:
输出:
这种情况使我不信任delegate
C# 中的匿名 s - 因为我不明白 C# 何时不会搞砸我对匿名delegate
s 的调用。
我的问题:为什么 C# 不跟踪stackalloc
有关匿名delegate
s 的空间?我知道 C# 没有跟踪。我想知道为什么它不跟踪,如果它使用常规变量。
我使用 .NET Core 2.1 和 C# 7.3,包括/unsafe
这些示例的开关。