c# – 代表目标c

c# – 代表目标c,第1张

概述首先,我应该告诉你,我对Objective C或C#知之甚少.所以,当我的一位同事问我是否有类似于Objective C的代表时,我想知道Objective-CI中是否存在这样一个概念,猜测我们使用的代表iphone编程不一样.C#委托是函数指针吗?在处理多个视图时,这样的设施会很好.我在哪里可以找到信息? Objective-C中的代表只是一个概念,而不是某种实现工件(如C#中). Object 首先,我应该告诉你,我对Objective C或C#知之甚少.所以,当我的一位同事问我是否有类似于Objective C的代表时,我想知道Objective-CI中是否存在这样一个概念,猜测我们使用的代表iphone编程不一样.C#委托是函数指针吗?在处理多个视图时,这样的设施会很好.我在哪里可以找到信息?解决方法 Objective-C中的代表只是一个概念,而不是某种实现工件(如C#中). Objective-C中的委托(更好:Cocoa)基本上是一个对象,由任何人使用它作为其发生的某些事件的“委托”.也可能要求代表代表主机对象执行某些任务.委托需要实现的接口通常由协议形式化.

@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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1031804.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存