c#可选enum类型属性设置器编译在经典.net,但不是在.net核心?(cs0019)



我正试图将这个属性设置器的代码移植到。net core。我得到了一个我没有预料到的错误。为什么?有什么不同吗?

    /// <remarks>This uses the native .NET datatype, rather than the FHIR equivalent</remarks>
    [NotMapped]
    [IgnoreDataMemberAttribute]
    public Hl7.Fhir.Model.RemittanceOutcome? Outcome
    {
        get { return OutcomeElement != null ? OutcomeElement.Value : null; }
        set
        {
            if(value == null) // CS00019
              OutcomeElement = null; 
            else
              OutcomeElement = new Code<Hl7.Fhir.Model.RemittanceOutcome>(value);
            OnPropertyChanged("Outcome");
        }
    }

错误在Enum?可选类型的setter中:

    CS0019  Operator '==' cannot be applied to operands of type 
    'RemittanceOutcome?' and '<null>'   

类型为public enum RemittanceOutcome。对于一个可选enum,它是否变得不可能了,或者实现现在不同了?我是否遇到了ASP.net core 1.0.0 rtm中的编译器错误?

这是一个。net核心库中的一个项目。Json格式如下:

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Newtonsoft.Json": "9.0.1",
    "System.ComponentModel.Annotations": "4.1.0",
    "System.ComponentModel.Primitives": "4.1.0",
    "System.Diagnostics.Contracts": "4.0.1",
    "System.Net.Requests": "4.0.11"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "buildOptions": {
    "define": [],
    "nowarn": [ "CS3016" ]
  }
}

将这段代码移植到dnxcore50 (asp.net core 1.0.0 rtm)还有一些其他的惊喜,但是对于初学者来说,这个似乎已经足够了。

示例项目:https://github.com/wpostma/fhir-net-api - branch dnxcore50.

我认为你遇到了一个bug。这应该是可行的。要确认是否可以尝试

if(value.HasValue)

,看看它是否有效?

作为一个可空的Enum,检查HasValue修复问题吗?

/// <remarks>This uses the native .NET datatype, rather than the FHIR equivalent</remarks>
[NotMapped]
[IgnoreDataMemberAttribute]
public Hl7.Fhir.Model.RemittanceOutcome? Outcome
{
    get { return OutcomeElement != null ? OutcomeElement.Value : null; }
    set
    {
        if(!value.HasValue)
          OutcomeElement = null; 
        else
          OutcomeElement = new Code<Hl7.Fhir.Model.RemittanceOutcome>(value);
        OnPropertyChanged("Outcome");
    }
}

相关内容

  • 没有找到相关文章

最新更新