Tag: 代表

我如何清除C#中的事件订阅?

以下面的C#类: c1 { event EventHandler someEvent; } 如果有很多订阅c1的someEvent事件,我想清除它们,最好的方法是什么? 还要考虑这个事件的订阅可能是lambda /匿名代表。 目前我的解决scheme是添加一个ResetSubscriptions()方法给c1设置someEvent为null。 我不知道这是否有任何看不见的后果。

如何在'纯粹的'Swift(w / o @objc)中创build一个弱协议引用

weak引用似乎没有在Swift中工作,除非一个protocol被声明为@objc ,我不想在一个纯粹的Swift应用程序。 此代码给出了编译错误( weak不能应用于非types的MyClassDelegate ): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 我需要以@objc作为前缀,然后才能正常工作。 问:什么是“纯粹”的快速完成weak delegate ?

什么是.delegate = self?

任何人都可以解释someViewController.delegate = self和self.delegate的含义? 他们在哪里帮助我们?

代表们,为什么?

可能重复: 你什么时候在C#中使用委托? 代表的目的 我看到很多关于代表使用的问题。 我仍然不清楚在哪里,为什么你会使用委托,而不是直接调用方法。 我多次听到这句话:“委托对象可以被传递给可以调用引用方法的代码,而不必在编译时知道哪个方法会被调用。 我不明白这种说法是正确的。 我写了下面的例子。 假设你有3个相同参数的方法: public int add(int x, int y) { int total; return total = x + y; } public int multiply(int x, int y) { int total; return total = x * y; } public int subtract(int x, int y) { int total; return total = x – […]

用委托或lambda包装StopWatch时间?

我正在写这样的代码,做一些快速和肮脏的时间: var sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 1000; i++) { b = DoStuff(s); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); 当然,有一种方法可以把这个时间代码称为一个奇怪的.NET 3.0 lambda,而不是(上帝禁止)剪切和粘贴它几次,并用DoSomethingElse(s)代替DoStuff(s) ? 我知道这可以作为Delegate完成,但我想知道lambda的方式。

function与动作与谓词

有了真实的例子和他们的使用,有人可以帮我理解: 我们什么时候需要Func委托? 我们什么时候需要行动委托? 我们什么时候需要Predicates委托?

删除事件处理程序

这是: Button.Click -= new EventHandler(Button_Click); 就像这样: Button.Click -= Button_Click; 我问,因为对我来说,似乎前者是删除一个方法的新参考,后者是删除一个方法本身。 但是,再次,也许新的EventHandler部分隐含在+ =或 – =重载,以防程序员没有明确指定它? 如果不一样的话 Button.Click -= new EventHandler(Button_Click); VS Button.Click -= Button_Click; 谢谢。

我们可以将代表保存在一个文件(C#)中

我有一个有代表团成员的class级。 我可以为该类的每个实例化对象设置委托,但尚未find任何方法来保存该对象

目标C iPhone开发中的“委托”是什么?

目标C iPhone开发中的“委托”是什么?

你什么时候在C#中使用委托?

你在C#中使用什么代表?