问题标签 [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.

0 投票
5 回答
164 浏览

.net - 如何修复此错误:“MyEvent += 预期”?

我有一个代表,说:

我有一个事件,说:

在调用事件时,我收到一条错误消息:

“我的事件 += 预期......”

我该如何解决这个问题?

0 投票
6 回答
72869 浏览

c# - 委托关键字与 lambda 表示法

编译后,两者之间是否有区别:

?

0 投票
14 回答
12410 浏览

.net - 使用代表的好处?

我希望在 VB.NET 或 C# 或其他一流的 .NET 语言中实现观察者模式。我听说委托可以用于此目的,但无法弄清楚为什么它们比在观察者上实现的普通旧接口更受欢迎。所以,

  • 为什么我应该使用委托而不是定义我自己的接口并传递对实现它们的对象的引用?
  • 为什么我要避免使用委托,而使用良好的老式接口?
0 投票
4 回答
5929 浏览

.net - 使用委托会减慢我的 .NET 程序的速度吗?

使用代表会减慢我的程序吗?

我一直在避开它们,因为我真的不知道它们是否会使我的程序变慢。我知道我是否会导致(捕获)异常,这会占用大量 CPU 资源,但我不知道委托和事件以及 .NET 对它们做了什么。

0 投票
8 回答
960 浏览

c# - C# 代表 - 您多久使用一次,何时使用?

代表看起来像一个如此强大的语言功能,但我还没有找到机会在愤怒中使用它们(我必须说在 DAL 中除外)。

您多久使用一次?在什么情况下您觉得它们最有用?

0 投票
3 回答
2154 浏览

design-patterns - 您是否在具有闭包/委托/函数指针的编程语言中使用模板方法模式?

在过去的 8 年里,我一直在 C# 和 Java 之间来回穿梭。

让我印象深刻的一件事是我已经完全停止在 C# 中使用“模板方法”设计模式。实际上,在 C# 中,我已经开始将这种模式视为一种反模式。

http://en.wikipedia.org/wiki/Template_method_pattern

回到 Java,我发现这种模式是活生生的。我仍然认为它看起来很古老,但意识到在 java 中没有其他方法可以做到这一点。Java 看起来也很古老;)

既然这无论如何都会出现,为什么它是反模式?

  • 很多时候,它会因为“错误的原因”耗尽你的继承层次结构。
  • 基类倾向于散布各种不相关的代码。
  • 它迫使您锁定设计,通常是在开发过程的早期阶段。(在很多情况下过早锁定)
  • 在以后的阶段改变这一点变得越来越难。

因此,对于闭包/委托/函数指针,您通常会传递一些函数而不是子类化。

那么回到问题:

如果您的语言有闭包/委托/函数,您是否使用模板方法,何时使用?

0 投票
4 回答
1474 浏览

c# - 在哪里放置您的代表。.

我正在尝试确定我的应用程序的最佳目录结构

我有:

UI
数据
接口

但我不知道把代表放在哪里..

是否应该有一个单独的 Delegates 文件夹,或者我应该将代表存储在使用它们的相同类中。.

0 投票
6 回答
11061 浏览

delegates - Func<> 委托有什么了不起的?

对不起,如果这是基本的,但我试图在 .Net 3.5 上学习。

问题: Func<> 有 5 个重载吗?从外观上看,我仍然可以自己创建一个类似的委托,MyFunc<> 具有确切的 5 个重载甚至更多。

例如:public delegate TResult MyFunc<TResult>()以及各种重载的组合......

当我试图理解 Func<> 代表并遇到以下情况时,这个想法出现了:

这意味着委托具有一个 int 类型的参数和一个 int 类型的返回类型。有五种变体(如果您通过智能感知查看重载)。所以我猜我们可以有一个没有返回类型的委托?

那么我是否有理由说 Func<> 没什么了不起,只是 .Net 框架中的一个示例,我们可以使用它,如果需要,创建自定义“func<>”代表以满足我们自己的需要?

谢谢,

0 投票
2 回答
1143 浏览

cocoa - NSApplication 委托和首选项窗格

似乎我无法从系统偏好设置窗格中控制 NSApp 委托,这是可以理解的。有没有其他方法可以在程序激活时通知我的对象?

0 投票
8 回答
53201 浏览

c# - 自动创建空的 C# 事件处理程序

不可能在 C# 中触发没有附加处理程序的事件。因此,在每次调用之前,有必要检查事件是否为空。

我想保持我的代码尽可能干净并摆脱那些空检查。我认为它不会对性能产生太大影响,至少在我的情况下不会。

现在我通过手动为每个事件添加一个空的内联处理程序来解决这个问题。这很容易出错,因为我需要记住这样做等等。

有没有办法使用反射和一些 CLR 魔法为给定类的所有事件自动生成空处理程序?