gpt4 book ai didi

c# - 如何检查 int 是否是 .NET 中的合法 HttpStatusCode?

转载 作者:太空狗 更新时间:2023-10-29 22:12:32 25 4
gpt4 key购买 nike

我想确保一个人提供的号码是合法的 HttpStatusCode .

起初我想到使用 Enum.TryParse(..)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 枚举。

伙计们,有什么想法吗?

最佳答案

与其尝试解析值,不如使用 IsDefined 方法

Enum.IsDefined(typeof(HttpStatusCode),value)

带有“1”的情况不会失败的原因是您可以对枚举进行二进制运算。这经常用于标志,因此枚举中未明确列出的值可能仍然是有效值

关于c# - 如何检查 int 是否是 .NET 中的合法 HttpStatusCode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com