c# - 为什么 Microsoft.AspNetCore.Http.StatusCodes 不设计为枚举?
问题描述
为了学习有关软件设计的新知识,我经常分析 .NET 框架源代码。
在我今天的学习过程中,Microsoft.AspNetCore.Http.StatusCodes
当我看到它不是作为枚举实现,而是作为具有public const int
字段(甚至不是属性)的静态类时,它引起了我的注意。
当它看起来是一个完美的解决方案时,你为什么不使用它呢?enum
这个设计决策背后的思考过程可能是什么?
我想我可能在这里遗漏了一些东西,我很乐意从这次经历中学到一些东西。
解决方案
这是Tratcher的回答:
状态码不是闭集,允许 100 到 999 之间的任何码。枚举最适合所有值都已知的封闭集。该枚举甚至不包括所有标准化代码。它也有一些代码的多个条目。我发现缺乏可用性,因为它掩盖了您的实际状态代码。
参考:https ://github.com/aspnet/Mvc/issues/6997#issuecomment-388554278
推荐阅读
- java - Jar 文件不会与 SWT Mac 一起运行
- kubernetes - 在不分叉的情况下修改 Helm Chart 依赖项的环境变量
- android - 如何在具有平滑滚动的同一布局中拥有两个 recyclerview(先水平然后垂直)
- r - 是否有允许将数值分配给字符的功能?
- wordpress - 在 wordpress 帖子中仅显示指定的自定义分类法
- python - ValueError:时间数据'00.00.00'pyspark
- oracle - 仅仅因为另一个进程失败,Oracle APEX ARP 进程没有执行?
- azure - 如何在 Azure 策略定义中组合多个语句?
- facebook - Facebook令牌通过公共页面刮
- javascript - 如何在 JavaScript 中映射两个不同长度的对象数组的属性