Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建一个weatherapp,在一个Github项目之后,我如何才能获得摄氏温度而不是华氏温度?_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 创建一个weatherapp,在一个Github项目之后,我如何才能获得摄氏温度而不是华氏温度?

C# 创建一个weatherapp,在一个Github项目之后,我如何才能获得摄氏温度而不是华氏温度?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,这是我目前正在使用的项目,它工作得非常完美。正如我在标题中所解释的,我试图用摄氏度来代替华氏度,但我还没有弄明白 也许这甚至不可能,但当我检查代码时,我看到一行代码如下所示: var unit = IsImperial ? "F" : "C"; Temp = $"Temp: {weatherRoot?.MainWeather?.Temperature ?? 0}°{unit}"; Condition = $"{weatherRoot.Name}:

这是我目前正在使用的项目,它工作得非常完美。正如我在标题中所解释的,我试图用摄氏度来代替华氏度,但我还没有弄明白

也许这甚至不可能,但当我检查代码时,我看到一行代码如下所示:

var unit = IsImperial ? "F" : "C";
            Temp = $"Temp: {weatherRoot?.MainWeather?.Temperature ?? 0}°{unit}";
            Condition = $"{weatherRoot.Name}: {weatherRoot?.Weather?[0]?.Description ?? string.Empty}";

var单位是否为材料?“F”:“C”以华氏为单位的F和以摄氏为单位的C的平均值

作为单位的是将插入临时字符串中的度符号后,该符号表示
°{unit}
,根据IsImperial的值,该符号将变为
°C
°F

要得到摄氏温度,你可以说

var temp = weatherRoot?.MainWeather?.Temperature ?? 0;
if(IsImperial)
  temp = (temp - 32) * 1.8;

是as unit将在Temp字符串中的度符号后插入,该符号表示
°{unit}
,根据IsImperial的值,该符号将变为
°C
°F

要得到摄氏温度,你可以说

var temp = weatherRoot?.MainWeather?.Temperature ?? 0;
if(IsImperial)
  temp = (temp - 32) * 1.8;

我快速浏览了一下这个项目,没有看到实际的转换函数,因此请求可能会处理它

链接的代码只是viewmodel中的显示代码。这实际上只是在UI上显示它的字符串格式行。如果您查看上面的线条,您可以看到:

//Get forecast based on cityId
Forecast = await WeatherService.GetForecast(weatherRoot.CityId, units);
这实际上是向服务器发出请求的原因,并且单位设置略高于以下值:

var units = IsImperial ? Units.Imperial : Units.Metric;
因此,将IsImperial设置为false可能会更改请求的格式,以便以公制形式接收结果。至于F是指华氏温度,C是指摄氏温度——是的。下面的行扩展为{unit}

您引用的行仅使用三元if。只是一点语法上的糖分,扩展到:

string unit;
if (IsImperial)
    unit = "F"
else 
    unit = "C"

我快速浏览了一下这个项目,没有看到实际的转换函数,因此请求可能会处理它

链接的代码只是viewmodel中的显示代码。这实际上只是在UI上显示它的字符串格式行。如果您查看上面的线条,您可以看到:

//Get forecast based on cityId
Forecast = await WeatherService.GetForecast(weatherRoot.CityId, units);
这实际上是向服务器发出请求的原因,并且单位设置略高于以下值:

var units = IsImperial ? Units.Imperial : Units.Metric;
因此,将IsImperial设置为false可能会更改请求的格式,以便以公制形式接收结果。至于F是指华氏温度,C是指摄氏温度——是的。下面的行扩展为{unit}

您引用的行仅使用三元if。只是一点语法上的糖分,扩展到:

string unit;
if (IsImperial)
    unit = "F"
else 
    unit = "C"

要回答这个问题:

var单位是否为实质性单位?“F”:“C”;F的单位是华氏度,C的单位是摄氏度

它是三元运算符格式。它本质上相当于

string unit = String.Empty;
if(IsImperial == true){
    unit = "F"
}else{
    unit = "C"
}
它只是存储一个字符串供以后使用,比如说“50f”或“50c”,其中F和C等于变量单位

如果您需要让您的应用程序在应用程序的早期某处使用公制单位celcius(可能在应用程序加载时?),请设置Helpers.Settings.IsImperial=false。您不必手动转换温度,因为对RESTAPI的调用将为您实现这一点。这个应用程序可以为你处理所有类似的事情,因为它只是为你显示温度,以华氏摄氏度为单位

编辑:这就是我所做的

public App()
{
        Helpers.Settings.IsImperial = false;
.....
}

要回答这个问题:

var单位是否为实质性单位?“F”:“C”;F的单位是华氏度,C的单位是摄氏度

它是三元运算符格式。它本质上相当于

string unit = String.Empty;
if(IsImperial == true){
    unit = "F"
}else{
    unit = "C"
}
它只是存储一个字符串供以后使用,比如说“50f”或“50c”,其中F和C等于变量单位

如果您需要让您的应用程序在应用程序的早期某处使用公制单位celcius(可能在应用程序加载时?),请设置Helpers.Settings.IsImperial=false。您不必手动转换温度,因为对RESTAPI的调用将为您实现这一点。这个应用程序可以为你处理所有类似的事情,因为它只是为你显示温度,以华氏摄氏度为单位

编辑:这就是我所做的

public App()
{
        Helpers.Settings.IsImperial = false;
.....
}

yes as unit将在温度字符串中的度符号后插入,该符号表示“{unit}”,根据ISIMPERIAL的值,该符号将变为°C或°F。请看一看yes as unit将在温度字符串中的度符号后插入,该符号表示“{unit}”这将变成°C或°F,取决于IsImperia的值。看,我把它改成了这个,但我仍然以华氏温度接收它。在Weather.cs文件中,行:
publicstringdisplaytemp=>$“Temp:{MainWeather?.Temperature±0}°{Weather?[0]?.Main±string.Empty}”为了使它工作,我也必须调整它吗?把它放在顶部附近,然后用
temp
替换
MainWeather?.Temperature
everywhere@Slepz,无转换或MainWeather?。温度代码是必需的。OP只需在应用程序的早期将Settings.IsImperial设置为false即可获得Celcius@Benji哦,我还以为他是在逃避审判呢receiving@Slepz不,通过代码查看,有一个helper类来处理设置。根据Settings.IsImperial的值,对rest api的调用将传递“Imperial”或“Metric”作为查询字符串值,并返回正确的数字。我将其更改为该值,但仍将其作为华氏温度接收。在Weather.cs文件中,行:
publicstringdisplaytemp=>$“Temp:{MainWeather?.Temperature±0}°{Weather?[0]?.Main±string.Empty}”为了使它工作,我也必须调整它吗?把它放在顶部附近,然后用
temp
替换
MainWeather?.Temperature
everywhere@Slepz,无转换或MainWeather?。温度代码是必需的。OP只需在应用程序的早期将Settings.IsImperial设置为false即可获得Celcius@Benji哦,我以为我是贵族