我知道我可以将结果从 GetHttpCode() 类型转换为 HttpStatusCode ,但我不喜欢类型转换枚举。特别是因为 MSDN 文档没有明确说明枚举的值始终是准确对应的 http 状态代码。

我觉得 GetHttpCode() 应该只返回 HttpStatusCode

我应该停止提示和排版吗?

catch(HttpException ex)
{
    switch((HttpStatusCode)ex.GetHttpCode())
    {
        case HttpStatusCode.NotFound:
            // Do stuff...
            break;
        // More cases...
    }
}

编辑:注意 HttpWebResponse.StatusCodeHttpStatusCode 类型

最佳答案

值得注意的是,HTTP 允许自定义状态代码,因此不能保证枚举将包含响应中的值。出于这个原因,API 返回 int 值而不是尝试使用枚举是明智的。

关于c# - 为什么 HttpException.GetHttpCode() 返回 int 而不是 System.Net.HttpStatusCode?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12673437/

10-08 22:22