人が提供する番号が正当な HttpStatusCodeであることを確認したいと思います。
最初はEnum.TryParse(..)
orを使用することを考えEnum.Parse(..)
ましたが、いくつかの悪いデータが提供されて無効な結果が得られる可能性があります..
例えば。
In: Enum.Parse(typeof (HttpStatusCode), "1")
Out: 1
In: Enum.Parse(typeof (HttpStatusCode), "400")
Out: BadRequest
In: Enum.Parse(typeof (HttpStatusCode), "aaa")
Out: System.ArgumentException: Requested value 'aaa' was not found.
わかりました。悪いaaa値を渡すと、System.Argument 例外が発生します。しかし、数値 1 (int ではなくテキストとして) を渡すと、戻り値 1 が返されます。これは失敗して例外がスローされると予想していました。
値 400 を渡すと、正しい列挙が返されます。BadRequest
アイデアはありますか?