【问题标题】:How to set value on nullable object using xamarin?如何使用 xamarin 在可空对象上设置值?
【发布时间】:2021-05-09 12:14:49
【问题描述】:

我试图显示可为空的对象。当变量变为 null 以显示 0 时。 我的对象是双重的?当这个对象为空时,他不会显示出来。

如何在这个对象上设置 0 时为 null ?

我的 xaml 代码:

Label x:Name="SnowForecastFirstDay"   
                   HorizontalTextAlignment="Center"
                   Grid.Row="2"
                   Grid.Column="4"
                   FontSize="15"
                   TextColor="White"
                   FontAttributes="Bold"/>

我的 C# 代码:

double? snowForecastFirstDay = weatherBindingData.WeatherDataForecastHourly.List[0].SnowForecast.SnowForecastValue;

        if (snowForecastFirstDay == null)
        {
            SnowForecastFirstDay.Text = "SNOW: 0mm";
        }
        else
        {
            SnowForecastFirstDay.Text = "SNOW:" + weatherBindingData.WeatherDataForecastHourly.List[0].SnowForecast.SnowForecastValue.ToString() + "mm";
        }

我尝试使用此 if/else 语句,但我的标签未显示在屏幕上。 具有空值的正确方式对象如何出现在显示屏上?

【问题讨论】:

  • 使用snowForecastFirstDay.HasValue 判断一个可为空的类型是否有值
  • 你能举个例子吗?
  • if (snowForecastFirstDay.HasValue)
  • 不工作;(我尝试按照你的方式,但标签没有显示
  • 您实际上是从哪里获得这些数据的?你确定它真的有价值吗?

标签: c# xamarin


【解决方案1】:

尝试空合并运算符

double? snowForecastFirstDay = weatherBindingData.WeatherDataForecastHourly.List[0].SnowForecast.SnowForecastValue ?? 0;
SnowForecastFirstDay.Text = "SNOW:" + snowForecastFirstDay  + "mm";

【讨论】:

  • 我试过你的方法,但它没有再次工作..对象是双重的?我是故意这样做的,而不是加倍,因为我的调试器隆隆声说我有空值。是这个问题吗?
  • 您所说的“对象是双重的”到底是什么意思? ?
  • 对象类型为double?不加倍
【解决方案2】:

根据给出的答案,我可以猜测问题不在于您的可空双精度没有获得值,而是您的标签。 为您的标签提供默认文本并评论您对值的编程更改,使其显示。 注意:在您的帖子中,您忘记了开头标签“

<Label x:Name="SnowForecastFirstDay" 
                   Text="Default value for test"  
                   HorizontalTextAlignment="Center"
                   Grid.Row="2"
                   Grid.Column="4"
                   FontSize="15"
                   TextColor="White"
                   FontAttributes="Bold"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多