C# 如何在.NET中检查int是否是合法的HttpStatusCode?
我希望确保一个人提供的号码是合法的 起初我想使用C# 如何在.NET中检查int是否是合法的HttpStatusCode?,c#,.net,enumeration,http-status-codes,C#,.net,Enumeration,Http Status Codes,我希望确保一个人提供的号码是合法的 起初我想使用Enum.TryParse(..)或Enum.Parse(..),但我可能会在提供一些错误数据的情况下得到无效的结果 例如 好的,如果我传入一个错误的aaa值,我会得到System.Argument异常。但是当我传入一个数字1(作为文本,而不是int)时,我得到的返回值是1。我本以为这会失败并抛出异常 传递值400将返回正确的BadRequest枚举 有什么想法吗,伙计们?不用简单地用IsDefined方法解析值 Enum.IsDefined(ty
Enum.TryParse(..)
或Enum.Parse(..)
,但我可能会在提供一些错误数据的情况下得到无效的结果
例如
好的,如果我传入一个错误的aaa值,我会得到System.Argument异常。但是当我传入一个数字1(作为文本,而不是int)时,我得到的返回值是1。我本以为这会失败并抛出异常
传递值400将返回正确的BadRequest
枚举
有什么想法吗,伙计们?不用简单地用IsDefined方法解析值
Enum.IsDefined(typeof(HttpStatusCode),value)
“1”的情况之所以没有失败,是因为您可以对枚举执行二进制算术。这经常用于标志,因此枚举中不特定的值可能仍然是有效值,即:
如果值是与enumType的命名常量不对应的名称,则该方法将抛出一个。如果value是整数的字符串表示形式,而该整数不表示enumType枚举的基础值,则该方法将返回一个枚举成员,其基础值是转换为整数类型的值。如果不需要此行为,请调用该方法以确保整数的特定字符串表示形式实际上是enumType的成员
先生/女士,您是一位绅士/淑女和学者/我低语呜呜^呜呜!找到了。我在lightspeed上浏览了一下文档,但错过了这一非常重要的段落。好样的!
Enum.IsDefined(typeof(HttpStatusCode),value)