有没有办法使用#define来区分平台?(Xamarin.Forms)

时间:2017-01-25 22:28:46

标签: xamarin xamarin.forms skiasharp

我正在使用Xamarin.forms pcl。

创建应用程序

我已经知道我们使用" Device.OS"区分我们使用pcl时的平台。

但在某些情况下,我需要使用define header来存档它,但我无法找到解决方案。

在某些情况下,我想为每个平台使用不同的派生类。

像这样

#if __ANDROID__
    public class SkiaView_BG : SKCanvasView
#else
    public class SkiaView_BG : SKGLView
#endif

1 个答案:

答案 0 :(得分:2)

没有。 PCL的重点在于代码编译一次,Android和iOS(或您定位的任何平台)都使用完全相同的DLL。因此没有#if用于定位不同的平台。

如果您真的需要在平台之间共享大部分代码,但是使用上面示例中的某些特定于平台的代码,则应该查看shared projects

如果您需要使用PCL,那么您需要找到一种方法将其转换为自定义渲染器,或其他方法将该类移动到每个特定于平台的项目中。