Xamarin C#我如何向AppDelegate添加接口或类?

时间:2018-01-04 12:46:10

标签: c# ios xamarin xamarin.ios

项目示例代码可在此处获取: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)(测试)

1 个答案:

答案 0 :(得分:2)

错误代码有效,因为您没有以正确的方式完成代码:

  1. 接口
      

    AppDelegate未实现接口成员EmptyInterface.EmptyInterfaceMethod1()

  2. 这个告诉你现有的名为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

    1.   

      班级AppDelegate不能有多个基类:UIApplicationDelegateEmptyClass

      这个非常简单,你不能有一个类(AppDelegate),它继承自2个基类。这是C#的语言语法不支持的东西。因为那时会出现类似命名的属性或方法等问题。