首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效枚举值

无效枚举值
EN

Stack Overflow用户
提问于 2016-11-17 16:04:58
回答 1查看 5.9K关注 0票数 1

所以我有一个类型:

代码语言:javascript
复制
public enum Types
{
    aaa= 1,
    bbb= 2,
    ccc= 4
}

public class RequestPayload
{
    public int Prop1 { get; set; }
    public string Prop2 { get; set; }
    public Types Prop3 { get; set; }
}

对于邮递员,我正在测试一个网络api。

代码语言:javascript
复制
public MyType Create([FromBody] RequestPayloadpayload)
{
    return null
}

这是我的邮递员设置:

那么,为什么在控制器中,当我的枚举没有这个值时,我的对象有属性Prop3到6666?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-17 16:12:09

我对“邮递员”一无所知,但我想您会感到惊讶的是,除了1、2或4以外的int值可以分配给Prop3。原因是--这正是枚举在C#中的工作方式,因为枚举类型的字段被转换为int (或枚举的底层类型),任何int值都可以合法地存储在其中。

来自MSDN

枚举天数:字节{Sat=1、Sun、Mon、Tue、Wed、Days、Fri};Days类型的变量可以被分配到基础类型范围内的任何值;这些值不限于指定的常量。

这可能是为了避免在运行时根据“定义”值对值进行昂贵的检查,但可能还有其他的架构原因(“标志”枚举的使用就是其中之一)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40659610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档