标签: delegates

带代理的C#observer/observable的超简单示例

我最近开始深入研究C#,但我不能通过我的生活弄清楚委托在语言中实现观察者/可观察模式时的工作方式.

有人能给我一个超级简单的例子说明它是如何完成的吗?我谷歌搜索了这个,但我发现的所有例子都是特定于问题或过于"臃肿".

c# events delegates observer-pattern

131
推荐指数
5
解决办法
13万
查看次数

代表:Predicate Action Func

有人能为这三位最重要的代表提供一个很好的解释(希望有例子):

  • 谓语
  • 行动
  • FUNC

C#开发人员应该注意哪些其他代表?

您多久在生产代码中使用它们?

c# delegates

129
推荐指数
4
解决办法
3万
查看次数

代表们迅速?

如何做一个代表,即NSUserNotificationCenterDelegate快速?

delegates delegation swift

129
推荐指数
7
解决办法
14万
查看次数

在IEqualityComparer中包装委托

几个Linq.Enumerable函数需要一个IEqualityComparer<T>.是否有一个方便的包装类适应delegate(T,T)=>bool实现IEqualityComparer<T>?编写一个很容易(如果你忽略了定义正确的哈希码的问题),但我想知道是否有开箱即用的解决方案.

具体来说,我想对Dictionarys 进行集合操作,仅使用Keys来定义成员资格(同时根据不同的规则保留值).

.net linq delegates

125
推荐指数
7
解决办法
4万
查看次数

Invoke和DynamicInvoke之间的区别

委托中的Invoke和DynamicInvoke有什么区别?请给我一些代码示例来解释这两种方法之间的区别.

.net c# delegates invoke dynamic-invoke

123
推荐指数
1
解决办法
4万
查看次数

为什么必须在作为普通的Delegate参数提供时转换lambda表达式

采取方法System.Windows.Forms.Control.Invoke(Delegate方法)

为什么会出现编译时错误:

string str = "woop";
Invoke(() => this.Text = str);
// Error: Cannot convert lambda expression to type 'System.Delegate'
// because it is not a delegate type
Run Code Online (Sandbox Code Playgroud)

但这很好用:

string str = "woop";
Invoke((Action)(() => this.Text = str));
Run Code Online (Sandbox Code Playgroud)

当方法需要普通代表时?

c# lambda delegates c#-3.0

120
推荐指数
3
解决办法
6万
查看次数

ReSharper/C#中的"委托减法有不可预测的结果"?

使用myDelegate -= eventHandlerReSharper(版本6)时出现问题:

委托减法具有不可预测的结果

JetBrains在这里解释了这背后的理性.这个解释很有意义,在阅读之后,我怀疑我-对代表的所有用处.

那么如何,

  • 我可以写一个非自动事件而不会让ReSharper脾气暴躁吗?
  • 或者,是否有更好和/或"正确"的方式来实现这一点?
  • 或者,我可以忽略ReSharper吗?

这是简化的代码:

public delegate void MyHandler (object sender);

MyHandler _myEvent;

public event MyHandler MyEvent
{
    add
    {
        _myEvent += value;
        DoSomethingElse();
    }
    remove
    {
        _myEvent -= value; // <-- ReSharper warning here
    }
}
Run Code Online (Sandbox Code Playgroud)

c# resharper events delegates compiler-warnings

120
推荐指数
2
解决办法
3万
查看次数

107
推荐指数
6
解决办法
10万
查看次数

我在哪里使用代表?

什么是现实世界的地方呼吁代表?我很好奇这种方法是最佳解决方案的情况或模式.无需代码.

oop delegates design-patterns

106
推荐指数
7
解决办法
4万
查看次数

事件和代表之间的差异及其各自的应用程序

除了语法糖之外,我没有看到使用事件而不是代理的优点.也许我是误会,但似乎事件只是代表的占位符.

你能告诉我差异以及何时使用哪个?有哪些优点和缺点?我们的代码严重依赖于事件,我想深入了解它.

你何时会在事件中使用代表,反之亦然?请在生产代码中说明您对这两者的真实体验.

c# events delegates

106
推荐指数
4
解决办法
8万
查看次数