You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin C#:为AppDelegate添加接口或类失败,求正确实现方式

解决AppDelegate继承/实现EmptyInterface、EmptyClass的问题

我来帮你逐个解决这两个报错问题:

一、处理EmptyInterface的CS0535报错

你遇到的CS0535错误是因为C#要求实现接口时,必须实现接口中定义的所有成员方法。报错提示你没实现EmptyInterface.EmptyInterfaceMethod1(),所以只需要在AppDelegate里添加这个方法的实现即可——哪怕是空实现也可以。

修改后的代码示例:

using Foundation;
using UIKit;

namespace testing
{
    [Register("AppDelegate")]
    public class AppDelegate : UIApplicationDelegate, EmptyInterface
    {
        public override UIWindow Window { get; set; }

        // 必须实现接口要求的方法
        public void EmptyInterfaceMethod1()
        {
            // 这里可以写你的业务逻辑,或者留空
        }
    }
}

如果这个接口还有其他未实现的方法,也要一并添加哦。

二、处理EmptyClass的CS1721报错

C#是单继承语言,一个类只能有一个直接基类。你已经让AppDelegate继承了UIApplicationDelegate,所以不能再继承另一个类EmptyClass,这就是CS1721错误的原因。

解决方法分两种情况:

  • 如果EmptyClass是你自己可控的代码,建议把它改成接口(比如IEmptyInterface),这样就可以像上面的方式实现它;
  • 如果无法修改EmptyClass,可以用组合替代继承:在AppDelegate内部声明一个EmptyClass的实例,通过这个实例来调用它的方法。

示例代码(组合方式):

using Foundation;
using UIKit;

namespace testing
{
    [Register("AppDelegate")]
    public class AppDelegate : UIApplicationDelegate
    {
        public override UIWindow Window { get; set; }

        // 用组合的方式持有EmptyClass实例
        private EmptyClass _emptyClassInstance = new EmptyClass();

        // 如果需要调用EmptyClass的方法,可以在这里封装
        public void CallEmptyClassMethod()
        {
            _emptyClassInstance.SomeMethod();
        }
    }
}

内容的提问来源于stack exchange,提问作者user285594

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:08:17