Spark null运算符不使用可空类型

时间:2011-08-12 16:59:42

标签: nullable flex-spark

我有一个可以为空的DateTime我想以ShortDate格式显示它是否有值,但我无法正确。我想在这里使用null运算符($!{})。

它应该像这样工作:

<td>$!{period.Enddate.Value.ToShortDateString()}</td>

但是这会产生一个InvalidOperationException:可空对象必须有一个值。

删除'Value'部分也不起作用,这将使明显的'System.Nullable没有ToShortDateString的定义'消息。

使用条件运算符它可以正常工作,但只适用于这样的属性:

<td value="$!{period.Enddate.Value.ToShortDateString()}?{period.Enddate.HasValue}"></td>

我试图将它放在td元素中,而不是作为td的属性。 我在这里做错了什么,或者这是一个已知的问题?

我知道捕获InvalidOperationException(由Nullable类抛出)比捕获NullReferenceException更棘手,但我认为这是一个严重的缺陷。

干杯, 罗纳德

1 个答案:

答案 0 :(得分:0)

从Spark v1.6开始,这里有一些选项:

使用格式规范 -

<td>${ string.Format("{0:M/dd/yy}", period.Enddate) }</td>

或创建其他演示文稿属性 -

public string EnddateText
{
  get
  {
    var result = Enddate.HasValue ? Enddate.Value.ToShortDateString() : string.Empty;
    return result;
  }
}

<td>${ period.EnddateText }</td>