为什么 Microsoft.AspNetCore.Http.StatusCodes 没有设计为枚举?

ana*_*lov 8 c# enums http-status-codes asp.net-core

为了学习软件设计的新知识,我经常分析.NET框架源代码。

在今天的学习过程中,Microsoft.AspNetCore.Http.StatusCodes当我看到该类不是作为枚举实现,而是作为带有public const int字段(甚至不是属性)的静态类实现时,引起了我的注意。

当它看起来是一个完美的解决方案时,为什么使用它enum来达到这个目的呢?这个设计决策背后的思考过程可能是什么?

我想我可能在这里遗漏了一些东西,我很乐意从这次经历中学到一些东西。

Rod*_*voi 5

以下是Tratcher的回答:

状态代码不是闭集,允许 100 到 999 之间的任何代码。枚举最适合所有值都已知的闭集。该枚举甚至不包括所有标准化代码。它还有一些代码的多个条目。我发现缺乏可用性,因为它掩盖了您的实际状态代码。

参考:https://github.com/aspnet/Mvc/issues/6997#issuecomment-388554278