项目示例代码可在此处获取:Github Project file
如何在AppDelegate中添加EmptyInterface或EmptyClass?当我申请public class AppDelegate : UIApplicationDelegate, EmptyInterface or public class AppDelegate : UIApplicationDelegate, EmptyClass
时,它失败了
有人可以告诉我正确的方法吗?
using Foundation;
using UIKit;
namespace testing {
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate {
public override UIWindow Window {
get;
set;
}
}
}
编辑:错误代码:
AppDelegate.cs(53,53):错误CS0535:'AppDelegate'未实现接口成员'EmptyInterface.EmptyInterfaceMethod1()'(CS0535)(测试)
或
AppDelegate.cs(53,53):错误CS1721:类'AppDelegate'不能有多个基类:'UIApplicationDelegate'和'EmptyClass'(CS1721)(测试)
答案 0 :(得分:2)
错误代码有效,因为您没有以正确的方式完成代码:
AppDelegate
未实现接口成员EmptyInterface.EmptyInterfaceMethod1()
这个告诉你现有的名为EmptyInterface
的接口有方法EmptyInterfaceMethod1
,你必须在你的代码中实现(使用)。
解决方案:
interface IEmptyInterface {
int EmptyInterfaceMethod1();
}
public class AppDelegate : UIApplicationDelegate, IEmptyInterface {
public override UIWindow Window { get; set; }
//The type and parameter have to be same as in the interface!
public int EmptyInterfaceMethod1() { return 1; }
}
注意,常见的方法是名称界面,名称的开头有大写 I 。在你的情况下,正确的名称将是IEmptyInterface
。
班级
AppDelegate
不能有多个基类:UIApplicationDelegate
和EmptyClass
这个非常简单,你不能有一个类(AppDelegate
),它继承自2个基类。这是C#的语言语法不支持的东西。因为那时会出现类似命名的属性或方法等问题。