
@protocol ActionDelegate - (voID) actionDIDStart: (ID) aSender;- (voID) actionDIDEnd: (ID) aSender;@end@interface Action: NSObject { ID<ActionDelegate> delegate;}@property (nonatomic,assign) ID<ActionDelegate> delegate;@end 另一方面,C#中的代表是一个实现工件.有一个专用的委托关键字来声明委托类型和创建实际的委托实例.
class Action { delegate voID ActionDIDStartDelegate(Action sender); delegate voID ActionDIDEndDelegate(Action sender); ...} (我的C#有点生疏,所以语法可能在这里,抱歉;在现实生活中,人们可能会在上述情况下使用事件而不是原始代表).基本上,C#委托类似于Python方法对象.
您可以使用Objective-C的新代码块功能来模拟委托.尚未使用此功能,我无法对此发表评论.获得类似内容的另一种方法是使用普通函数指针.
typedef voID (*callback_function)();- (voID) doSomethingWithCallback: (callback_function) func { ... func();} 当然,您始终可以使用Cocoa本身经常使用的方法:使用对象和关联的方法选择器:
- (voID) doSomethingWhenDonePerform: (SEL)aSelector onObject: (ID) aReceiver { ... [aReceiver perform: aSelector];} 总结 以上是内存溢出为你收集整理的c# – 代表目标c全部内容,希望文章能够帮你解决c# – 代表目标c所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)