1
13
术语对应:方法组不是方法指针,更合适的术语是方法组。 就功能而言,这两个语句是等效的。就是他们生产的 几乎 同样的IL。不同之处在于委托值的存储位置。 在第一种情况下,将方法组add传递给直接获取sadd的方法。这将导致创建一个临时委托值,然后将其传递给接受SADD的方法。此委托值在takesadd返回方法时受到垃圾收集的影响,因为它不存储该值。 在第二种情况下,您将委托分配给外部实例上的字段。本遗嘱 典型地 增加委托的生命周期,从而减少在PInvoke调用期间被垃圾收集的机会。 |
2
4
委托是可调用的类,具有类似的 行为 函数指针。委托在内部存储要调用的函数的地址(即函数指针),但也提供其他功能,如多重转换和存储调用列表;您基本上可以用一个委托实例调用多个具有相同签名的函数,如下所示。
关于你的笔记关于
|
3
0
当代表在C语言中提供同义功能作为C或C++中的函数指针时,有显著的差异。其中的关键是 委托是一个类 ,不是指针。 简而言之,将委托强制转换为指针不会给您提供对函数或方法的引用,因此不能使用它从非托管代码中引用来调用方法。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |