Почему System.Net.Http.HttpMethod класс, а не перечисление?

HttpStatusCode реализуется как enum, причем каждое возможное значение присваивается соответствующему коду статуса HTTP (например, (int)HttpStatusCode.Ok == 200).

Однако HttpMethod реализован как class со статическими свойствами для получения экземпляров для различных HTTP-глаголов (HttpStatus.GET, HttpStatus.PUT и т.д.). В чем причина не реализации HttpMethod как enum?

Ответ 1

Из документации (выделено мной):

Примечания

Наиболее распространенным применением HttpMethod является использование одного из статических свойств этого класса. Однако, если для HTTP-метода требуется другое значение, конструктор HttpMethod инициализирует новый экземпляр HttpMethod с помощью HTTP-метода, который указывает приложение.

Это, конечно, невозможно с перечислением.

См. конструктор и свойство метода.