展开

关键词

首页关键词delegate

delegate

委托(delegate)是一种类型安全的函数指针,用于通用语言运行库(CLI)。在C#中,delegate是一种class,包装了一个或多个函数指针及绑定的类实例。Delegate用来实现函数回调与事件接收(eventlistener)。Delegate对象可以作为参数传递给其他函数,以引用(referenced)封装在delegate对象中的函数,而无需在编译时刻就绑定被调用函数。一旦为委托分配了函数方法,委托将与该函数方法具有完全相同的行为。与委托的类型特征(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。

相关内容

  • Swift:delegate

    ChangeColorDelegateSwift: class { 必须实现的方法 func changeClolor(_ clolor:UIColor) 非必须实现方法 }2.申明代理属性(weak):weak var delegate3.调用代理方法: if ((self.delegate?.changeClolor) != nil) { self.delegate?.changeClolor(.red) }4.在需要调用的地方遵循代理bVC.delegate = self5.在需要调用的地方写代理方法extension ViewController:ChangeColorDelegateobjc optional func mayChangeClolor() -> UIColor} class BViewController: UIViewController { weak var delegate{ 调用代理方法 if ((self.delegate?.changeClolor) != nil) { self.delegate?.
    来自:
    浏览:219
  • jQuery的 delegate问题

    习惯了bind,用惯了live,就不习惯delegate了呀有木有...支持为动态生成的标签元素绑定事件也许就live和delegate了吧,不过新版本已经不支持live了,只有delegatedelegatedelegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。语法$(selector).delegate(childSelector,event,data,function) 参数描述 childSelector 必需。比如这段小代码啊 $(document).ready(function(){ $(div).delegate(button,click,function(){ $(p).slideToggle(); }
    来自:
    浏览:177
  • 广告
    关闭

    11.11智惠云集

    2核4G云服务器首年70元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • Delegate 泛型

    委托Delegate   继承自MulticastDelegate   声明委托定义签名: public delegate int DemoDelegate(int num1, int num2); int input2){ return input1 + input1; } DemoDelegate demo1 = Sum;  使用匿名方法实例化委托: DemoDelegate demo2 = delegate
    来自:
    浏览:380
  • C# Anonymous delegate?

    namespace Test{ public delegate void MyDelegate(); class Program { static void Main(string[] args) {Console.ReadKey(true); } } class DelegateTest { public event MyDelegate del; public void Chaining() { del += delegate{ Console.WriteLine(Hello World); }; del += delegate { Console.WriteLine(Good Things); }; del += delegate
    来自:
    回答:2
  • 什么是delegate?

    我不明白delegate的实际作用是什么?我在面试中被问过很多次这个问题,但我不认为面试官对我的回答满意。 有谁能用一个实际的例子,告诉我最好的答案吗?
    来自:
    回答:2
  • Delegate如何进行类型转换?

    我们知道对于两个不具有继承关系的两个类型,如果没有为它们定义转换器,两这之间的类型转换是不允许的,Delegate也是如此。但是有时候我们却希望“兼容”的两种Delegate类型能够进行转换,比较典型的就是表示事件的Delegate。.NET Framework为我们定义了类型EventHandler来表示事件,但是却没有规定事件的Delegate类型是EventHandler的子类。原则上讲,事件可以是任意类型的Delegate,但是我们使用的事件一般具有如下两个共同点:不具有返回类型,或者返回类型为void; 有且只有两个输入参数,其一个参数类型为Object,第二个类型是EventArgs对象转换成目标Delegate类型。
    来自:
    浏览:319
  • Rx实现自定义类Delegate

    事情不多主要是讲讲Rx如何自定义代理,为啥要将这个只要是iOS中太多的delegate话不多说我们先来代码?{ super.touchesBegan(touches, with: event) if delegate != nil { delegate!.myTouchBegan?, to object: MyView) { object.delegate = delegate } static func currentDelegate(for object: MyView) -{ return object.delegate } public weak var myView:MyView?, to object: MyView) { object.delegate = delegate } static func currentDelegate(for object: MyView) -
    来自:
    浏览:280
  • jquery 事件委托 - delegate()

    事件委托的写法$(function(){ $list = $(#list); $list.delegate(li, click, function() { $(this).css({background示例完整代码如下 $(function(){ $(#list li).click(function(){ $(this).css({backgroundColor:red}); }) $(#list).delegate
    来自:
    浏览:748
  • event & delegate Demo(事件&委托示例)

    System.Windows.Forms; namespace WindowsFormsApplication1 {     public partial class Form1 : Form     {         public delegate void ActionEventHandler(object sender, ActionCancelEventArgs ev);声明一个delegate         public static             Form1.Action += new ActionEventHandler(Form1_Action);为事件Action增加处理程序(即通过ActionEventHandler这个delegate
    来自:
    浏览:320
  • Qt Model_View教程之Delegate

    在之前的文章里主要介绍了Qt ModelView 的一些基本用法,接下来结合Delegate做最后的说明。这就涉及到了Delegate。在之前的view中我们一直使用的是默认的Delegate,现在我们想要填充自己定义的内容,比如说在cell中填充五角星,这就需要我们重新实现Delegate。效果如下:?在View中使用setItemDelegate()方法代替使用默认的Delegate并使用自定义的Delegate。新的Delegate可以通过继承QStyledItemDelegate来重新实现。如果想要使用自定义图形来填充View 栅格中的cell,这时我们可以使用自定义Delegate,但如果不想使用View中的栅格,则需自定义View。
    来自:
    浏览:565
  • “协变”、“逆变”与Delegate类型转换

    我在发表了《Delegate如何进行类型转换?》四、通过Emit实现EventHandler的类型转换 五、最简单的转换方式 一、从Delegate的“协变”与“逆变”说起根据Delegate“协变”与“逆变”的原理,对于两个具有相同声明的两个Delegate1: public delegate void EventHandler(object sender, EventArgs e); 2: public delegate void EventHandler如果事件类型对于得Delegate并没有采用逆变方式定义,那么要求我们注册一个与之类型完全一致的Delegate。对象转换成目标Delegate类型。
    来自:
    浏览:337
  • Nebula3中的委托(Delegate)

    April2009增加了不少好东西, 这段时间准备静下心来看看关于delegate这么个东西, 可能C++程序员很陌生, 但是Callback函数一定听说过吧?中只引入一个单参数无返回值的最简单模板, 有兴趣的可以下载完整版本自己研究.写了一个测试程序, 相信一看就会用了:#include utildelegate.h using namespace Util;  typedef Delegate PrintCallback;  void print(int i)  {      n_printf(function delegate: %dn, i);  }  class Console  {  public:   void Print(int i)      {          n_printf(method delegate: %dn, i);      }  };  ----------
    来自:
    浏览:201
  • C# 自己对delegate的总结和认识

    LamdaSimple{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private delegateappId=Dev10IDEF1&l=ZH-CN&k=k(DELEGATE_CSHARPKEYWORD);k(DELEGATE)&rd=true Instantiate delegate with namedmethod:委托 MathAction ma = Double; Invoke delegate ma: double multByTwo = ma(4.5); Console.WriteLine(multByTwo); Instantiate delegate with anonymous method:匿名方法 MathAction ma2 = delegate(double input){ return input * input; }; double square = ma2(5); Console.WriteLine(square); Instantiate delegate
    来自:
    浏览:590
  • “Invoke(Delegate):”是什么意思?

    Invoke(Delegate): 在拥有控件底层窗口句柄的线程上执行指定的委托。 这意味着什么?
    来自:
    回答:2
  • iOS优化_你可能没注意到的delegate

    前言: 相信很多人都熟悉“委托模式”(delegate pattern),这个模式主要是为了数据与业务逻辑解耦,举个栗子: 我们的软件需要从后台服务器那边获取数据,而由于网络请求,不可能立即返回,而在获取数据的过程中阻塞应用为”assistant类“ Boss.h文件中 @protocol BugKFCDelegate @property (nonatomic, weak) id delegate; @optional -委托对象(assistant类)会持有本对象(也就是上面例子的”Boss类“),而定义boss类的delegate属性,如果delegate是strong定义的,则会被boss类所拥有。didReceiveData:(NSData *)data,那就很正常,一旦不实现该方法,又传了值过去,程序就会崩掉,所以我们应该加个判断 if () { ; } 有了上面的判断,即使delegate的setter方法,只要delegate有调用,缓存功能的代码就会生效 (void)setDelegate:(id)delegate { _delegate = delegate; _BugKFCState.BugKFCStateOK
    来自:
    浏览:281
  • Protocol与Delegate 使用方法详解你要知道的KVC、KVO、Delegate、Notification都在这里

    、KVO、Delegate、Notification的使用方法,来探讨KVO、Delegate、Notification的区别以及相关使用场景,本系列文章将分一下几篇文章进行讲解,读者可按需查阅。KVC 使用方法详解及底层实现KVO 正确使用姿势进阶及底层实现Protocol与Delegate 使用方法详解NSNotificationCenter 通知使用方法详解KVO、Delegate、Notification使用频率高,毕竟在Java中面向接口编程更加盛行,但OC使用较频繁的代理模式delegate就是以protocol作为基础实现的。这个方法肯定是可行的,但是太过凌乱,B视图不一定知道该调用A视图的何种方法,B视图也不一定会去调用该方法,为了规范代码,这个场景使用委托模式delegate更加合适。delegate和dataSource的数据流备注 由于作者水平有限,难免出现纰漏,如有问题还请不吝赐教。
    来自:
    浏览:448
  • C#中的委托delegate

    定义委托的语法如下:    delegate void IntMethodInvoker(int x);在这个实例中,定义了一个委托IntMethodInvoker,并制定该委托的每个实例都可以包含一个方法的引用委托实现为派生自基类System.MulticastDelegate的类,System.MulticastDelegate又派生自基类System.Delegate。下面来看一个实例化委托的例子: namespace ConsoleApplication{    class DelegateDemo1    {        定义委托        public delegate
    来自:
    浏览:234
  • C#多播委托(Multicast Delegate)

    下面看一个具体例子:namespace ConsoleApplication{ class MulticastDelegates { 声明一个委托,委托返回值为void public delegateDelegate[] delegates = greetings.GetInvocationList(); 注意这里的delegates列表中存储的是Greetings类型的委托 foreach (Greetings
    来自:
    浏览:844
  • 【浅谈Chromium中的设计模式(二)】——prepost和Delegate模式

    比如下载模块中弹出的对话框需要手动选择保存文件的地址和文件名;这些会给自动测试代码带来麻烦,但是有了delegate的设计,我们在测试代码中可以直接实现对应的Test的delegate,继承正常工作的delegate开发者只需要自己设计一个新的Delegate类来继承Download Manager Delegate,并覆盖相应的方法即可完成下载功能,另外需要通过Set Delegate方法,在程序开始时把自定义类的对象注册到下面看看自动化测试中应该怎么使用设置test的delegate:首先,基于Chrome Download Manager Delegate实现自己的测试的delegate:Delaying DownloadManager Delegate。?在对应的测试用例代码里面调用set Delegate替换为测试的delegate。??
    来自:
    浏览:967
  • jQuery中on()、bind()、live()、delegate()之间的区别

    jQuery的.on()、.bind()、.live()和.delegate()之间的区别并非总是那么明显的,然而,如果我们对所有的不同之处都有清晰的理解的话,那么这将会有助于我们编写出更加简洁的代码,现在我们可以较容易地说明.on()、.bind()、.live()和.delegate()的不同之处了。live(event,data,function); jquery1.9版本以下支持,jquery1.9及其以上版本删除了此方法,jquery1.9以上版本用on()方法来代替 $(selector).delegate().delegate()则是更精确的小范围使用事件代理,性能优于.live()。bind(), .live(), .delegate()都是通过.on()来实现的,.unbind(), .die(), .undelegate(),也是一样的都是通过.off()来实现的。
    来自:
    浏览:196

扫码关注云+社区

领取腾讯云代金券