我正在研究一个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();
}
}