4

GetHttpCode()からHttpStatusCodeに結果を型キャストできることは知っていますが、列挙型を型キャストするのは好きではありません。特に、MSDNドキュメントには、列挙型の値が常に正確に対応するhttpステータスコードであると明示的に記載されていないためです。

GetHttpCode()はHttpStatusCodeを返すだけでよいと思います。

不平を言ったり型キャストしたりするのをやめるべきですか?

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

編集:HttpWebResponse.StatusCodeのタイプはHttpStatusCodeであること注意てください

4

5 に答える 5

9

HTTPではカスタムステータスコードが許可されているため、列挙型に応答の値が含まれるとは限りません。このため、APIがint列挙型を使用するのではなく、値を返すことが賢明です。

于 2012-10-01T12:47:19.797 に答える
1

HTTPステータスコードは、通常は固定リストから取得する必要がありますが、固定リストから取得する必要はありません。列挙型を使用すると便利です。列挙型を要求するのは間違っているでしょう。

于 2012-10-01T12:47:30.770 に答える
0

応答には、エラーコードの整数値が含まれています。intは実際のエラーコードです。列挙により、エラーコードの「わかりやすい」表現が可能になります。

于 2012-10-01T12:43:48.090 に答える
0

不平を言ったり型キャストしたりするのをやめるべきですか?

はい。または、対応する整数値を使用します。

于 2012-10-01T12:44:04.550 に答える
0

はい、そのようにする必要があります。何よりも、あなた自身が提供したコードは、整数値やステータス番号を一緒に操作することからあなたを保護するので。したがって、技術的には、列挙値がステータス番号に対応するかどうかは重要ではありません。

于 2012-10-01T12:46:51.567 に答える