为什么System.Net.Http.HttpMethod是一个类,而不是一个枚举?

时间:2016-09-27 06:29:59

标签: c# language-design

HttpStatusCode实现为enum,每个可能的值都分配给相应的HTTP状态代码(例如(int)HttpStatusCode.Ok == 200)。

但是,HttpMethodimplemented as a class,具有静态属性以获取各种HTTP谓词的实例(HttpStatus.GETHttpStatus.PUT等)。 实施HttpMethod作为enum背后的理由是什么?

1 个答案:

答案 0 :(得分:21)

来自documentation(强调我的):

  

<强>说明

     

HttpMethod最常见的用法是使用此类中的一个静态属性。 但是,如果应用程序需要HTTP方法的不同值,则HttpMethod构造函数使用应用程序指定的HTTP方法初始化HttpMethod的新实例。

枚举当然不可能。

查看其constructormethod property