c# - 协议(protocol)与接口(interface)

标签 c# objective-c syntax swift

<分区>

我一直在阅读 swift 文档,并在 Playground 上工作。我不得不承认我对 Objective-C/iOS 开发的了解为零(至少在 Xamarin 之外)。在我看来,协议(protocol)似乎与 C# 接口(interface)相同。

然而,我在网上浏览时注意到,Objective-C 有一个协议(protocol) ( source ) 接口(interface)的概念(虽然我不太确定有什么区别是)。 Swift 似乎两者都没有——只有协议(protocol)。

有人可以快速解释协议(protocol)和 C# 接口(interface)之间的区别/关系吗?

更新:我很欣赏答案可能在功能上与列出的重复项相同,但我认为,考虑到这是在询问不同的语言,这个问题本身仍然有其优点。毕竟,Swift 的新开发人员可能对 Java 一无所知(除了 Javascript,我一无所知)。期望某人拥有完全不同的语言系统的知识才能得到他们问题的答案有点过分,不是吗!? This meta 上的讨论也在讨论这个问题。

最佳答案

Objective C 协议(protocol)的用途与 Java/C# 中的接口(interface)基本相同。 Objective C 接口(interface)文件不同。与 C 一样,Objective C 也有接口(interface)文件,公开声明类的方法和属性,然后在实现文件中实现。例如,您可能有一个看起来像这样的类的接口(interface)文件:

@interface  
-(void)myMethod;
@end

然后在您的实现文件中实际实现该方法:

-(void)myMethod{
    //code
}

Swift 取消了单独的接口(interface)和实现文件。所以它只有协议(protocol)。

关于c# - 协议(protocol)与接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041721/

相关文章:

c# - 如何获取十六进制 02 的 STX 字符

python - eval() 函数中 '=' 上的 SyntaxError : invalid syntax, 子句

c# - 带有 "?"和 "??"的代码是什么意思?

c# - 从受密码保护的网站自动下载

c# - 保护 WCF NetHttpBinding 的最有效方法

c# - 从 HRESULT : 0x80072F0D when posting to a service in Windows phone 8. 1 获取异常

ios - 添加子节点时出错

ios - 使用 UIBezierPath 绘制饼图

ios - 使用 if 语句的结果作为变量

sql - 将 TSQL 转换为 MS-Access SQL