首页 > 解决方案 > 为什么 Microsoft.AspNetCore.Http.StatusCodes 不设计为枚举?

问题描述

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

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

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

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

标签: c#asp.net-coreenumshttp-status-codes

解决方案


这是Tratcher的回答:

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

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


推荐阅读