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

Tom*_*han 19 c# language-design

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

然而,HttpMethod实现为class,静态属性来获取实例的各种HTTP动词(HttpStatus.GET,HttpStatus.PUT等).实施的理由HttpMethodenum什么?

slo*_*oth 24

文档(强调我的):

备注

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

这当然不可能用枚举.

请参阅其构造函数方法属性.

  • 啊,这就解释了。提出我的问题主要是因为我推断“所有允许的动词都在标准中指定 - 为什么不只是枚举它们?”,但我想,对非标准动词的支持是一个合理的考虑。感谢您的澄清! (2认同)

小智 8

多年后,我想微软已经听到了你的愿望......

这就是您想要的...

Http动词