标签: delegates

为什么要使用Expression <Func <T >>而不是Func <T>?

我理解lambdas FuncAction代表们.但表达方式让我很难过.在什么情况下你会使用一个Expression<Func<T>>而不是一个普通的老年人Func<T>

c# lambda delegates expression-trees

910
推荐指数
10
解决办法
21万
查看次数

如何在Objective-C中创建委托?

我知道代表们的工作方式,我知道如何使用它们.

但是我该如何创建呢?

cocoa delegates objective-c callback ios

735
推荐指数
14
解决办法
35万
查看次数

Func vs. Action vs. Predicate

通过实例和它们的使用,有人可以帮助我理解:

  1. 我们什么时候需要Func委托?
  2. 我们什么时候需要行动委托?
  3. 我们什么时候需要Predicates委托?

c# delegates

703
推荐指数
3
解决办法
32万
查看次数

使用C#将方法作为参数传递

我有几个方法都具有相同的签名(参数和返回值),但不同的名称和方法的内部是不同的.我想传递方法的名称以运行到另一个将调用传入方法的方法.

public int Method1(string)
{
    ... do something
    return myInt;
}

public int Method2(string)
{
    ... do something different
    return myInt;
}

public bool RunTheMethod([Method Name passed in here] myMethodName)
{
    ... do stuff
    int i = myMethodName("My String");
    ... do more stuff
    return true;
}

public bool Test()
{
    return RunTheMethod(Method1);
}
Run Code Online (Sandbox Code Playgroud)

此代码不起作用,但这是我想要做的.我不明白的是如何编写RunTheMethod代码,因为我需要定义参数.

.net c# methods delegates

646
推荐指数
7
解决办法
61万
查看次数

如何在'纯'Swift中创建弱协议引用(不带@objc)

weak引用似乎在Swift中不起作用,除非a protocol声明为@objc,我不想在纯粹的Swift应用程序中.

此代码给出了编译错误(weak不能应用于非类类型MyClassDelegate):

class MyClass {
  weak var delegate: MyClassDelegate?
}

protocol MyClassDelegate {
}
Run Code Online (Sandbox Code Playgroud)

我需要为协议添加前缀@objc,然后才能工作.

问题:什么是"纯粹的"Swift方式来实现weak delegate

delegates swift swift-protocols

553
推荐指数
4
解决办法
11万
查看次数

何时以及为何使用代表?

我在C#中比较新,我想知道何时适当地使用Delegates.它们被广泛用于事件声明中,但何时应该在我自己的代码中使用它们,为什么它们有用? 为什么不用别的东西?

我也想知道何时必须使用代表,我别无选择.

感谢您的帮助!

编辑:我想我已经在这里找到了代表必要用法

.net c# delegates

343
推荐指数
7
解决办法
52万
查看次数

代表和活动之间有什么区别?

代表和活动之间有什么区别?两者都不能保存对可以执行的函数的引用吗?

c# events delegates glossary

300
推荐指数
8
解决办法
12万
查看次数

在C#中取消订阅匿名方法

是否可以从事件中取消订阅匿名方法?

如果我订阅这样的事件:

void MyMethod()
{
    Console.WriteLine("I did it!");
}

MyEvent += MyMethod;
Run Code Online (Sandbox Code Playgroud)

我可以这样取消订阅:

MyEvent -= MyMethod;
Run Code Online (Sandbox Code Playgroud)

但是如果我使用匿名方法订阅:

MyEvent += delegate(){Console.WriteLine("I did it!");};
Run Code Online (Sandbox Code Playgroud)

是否有可能取消订阅这种匿名方法?如果是这样,怎么样?

c# delegates anonymous-methods

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

Java代表?

Java语言是否具有委托功能,类似于C#如何支持委托?

java delegates

189
推荐指数
6
解决办法
23万
查看次数

179
推荐指数
2
解决办法
7万
查看次数