在Xamarin中为iOS和Android分别实现相同的类

时间:2016-12-19 04:43:02

标签: c# xamarin.ios

我正在开发一个Xamarin项目,其中一个类需要在iOS和Android中有单独的实现。我正在考虑在Shared项目中有一个request.getParameter("fruit").split(",");并在iOS和Android项目中实现它。但我不知道该怎么做。

这是我到目前为止所尝试的,但是编译器在MyPopup_iOS的Set Fruit:-" + obj.favfruit); not Fruit:-" + obj.fruit); 方法中抛出错误,“没有合适的方法来覆盖”。由于我没有在共享项目中引用 MyPopup_iOS.cs 文件,我该如何调用此方法?

文件:MyProject中的MyPopup.cs

interface

在MyProject.iOS中提交MyPopup_IOS

callMe

1 个答案:

答案 0 :(得分:1)

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

public abstract class MyPopup
{
    void callMe();
}

2)将void CallMe()更改为abstract

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();
     }
 }