Xamarin中的iOS和Android的同一类的实现



我正在研究一个Xamarin项目,其中类需要在iOS和Android中单独实现。我正在考虑在共享项目中拥有interface,并在iOS和Android项目中实现。但是我不知道该怎么做。

这是我到目前为止尝试的,但是编译器在mypopup_ios的callMe方法中给我带来了错误,"没有合适的方法可以覆盖" 。而且,由于我在共享项目中没有任何提及 mypopup_ios.cs 文件,我该如何称呼此方法?

文件:myPropup.cs in myproject

public interface MyPopup
{
    void callMe();
}

myproject.ios中的mypopup_ios

public class MyPopup_IOS : MyPopup
{
    public override void callMe()
    {
    }       
}

1)将接口myPopup更改为抽象类

public abstract class MyPopup
{
    void callMe();
}

2)将void callme()更改为摘要

public abstract void CallMe ();

3)在您的平台特定类中覆盖该方法

public class MyPopup_IOS : MyPopup
{
    public override void callMe()
    {
    }       
}

4)现在您可以从基类调用该方法。它将触发平台特定的实现

public abstract class MyPopup
{
    public abstract void callMe();
    void doWork() {
       callMe();
     }
 }

最新更新