Xamarin应用程序在Device.OnPlatform和Switch()之间的混淆

时间:2018-03-26 17:38:08

标签: android xamarin xamarin.forms

我目前在实习项目上工作,要求我使用过时的项目。 我仍然在尝试建立这个项目,摆脱了所有的错误,但现在这条过时行的警告不允许我通过。

我有以下错误:

  

警告CS0618' Device.OnPlatform(T,T,T)'已经过时了:' OnPlatform<> (通用)自版本2.3.4起已过时。请改用开关(RuntimePlatform)。'

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace MobileMedico.Classes
{
    public static class BoolResources
    {
        public static readonly bool ShouldShowBoxView =  Device.OnPlatform(true, false, true);
    }
}

可悲的是,我不知道如何使用Switch方法。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

switch是一个基本的C#关键字

bool ShouldShowBoxView = false;

switch(Device.RuntimePlatform)
{
    case Device.iOS:
       ShouldShowBoxView = true;
       break;
   case Device.Android:
       ShouldShowBoxView = false;
       break;
}

答案 1 :(得分:1)

是的,该方法现已过时。为了定位特定设备,您必须确实使用将运行时平台作为参数的switch语句。这是一个示例。

  static class AppConstants
{
    public static readonly Thickness PagePadding = GetPagePadding();

    private static Thickness GetPagePadding()
    {
        double topPadding;

        switch(Device.RuntimePlatform)
        {
            case Device.iOS:
                topPadding = 20;
                break;
            default:
                topPadding = 0;
                break;
        }

        return new Thickness(5, topPadding, 5, 0);
    }
}