【问题标题】:Can Enums Inherit From Nullable Primitive Types?枚举可以从可为空的原始类型继承吗?
【发布时间】:2020-06-27 17:31:44
【问题描述】:

我正在查看一个 XML 规范,该规范指出需要将枚举编码为可为空的 uInt8

<enum name="FTI" encodingType="uInt8NULL">
    <validValue description="Backup" name="Backup">0</validValue>
    <validValue description="Primary" name="Primary">1</validValue>

因此,我创建了一个枚举,却发现它不能从可为空的原始类型继承。

有没有办法解决这个问题,或者这是设计使然?

public enum KeepAlivedLapsed : Byte?
{
    NotLapsed = 0,
    Lapsed = 1,
}

错误: CS1008 类型 byte、sbyte、short、ushort、int、uint、long 或 ulong 预期

当我从 Nullable&lt;Byte&gt; 继承时也会发生同样的错误。

【问题讨论】:

    标签: c# enums byte nullable


    【解决方案1】:

    您需要做的是创建一个普通枚举,然后将其用作可空类型:

    public enum KeepAlivedLapsed : Byte
    {
        NotLapsed = 0,
        Lapsed = 1,
    }
    
    KeepAlivedLapsed? value = null;
    

    【讨论】:

    • 这是有道理的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多