Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.NET中检查int是否是合法的HttpStatusCode?_C#_.net_Enumeration_Http Status Codes - Fatal编程技术网

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)