MethodImplAttributes.MaxMethodImplVal值的重点是什么?

时间:2015-05-07 01:04:09

标签: c# .net

MSDN中MethodImplAttributes.MaxMethodImplVal的说明:

  

指定范围检查值。

这就是我能找到的所有东西。但这实际上用于什么?

2 个答案:

答案 0 :(得分:1)

它只是一个特殊值,允许对有效值进行更简单的范围检查。任何其积分值大于此值的值都可视为无效。请记住,尽管枚举定义了某些值的名称,但它并不意味着与单个枚举不对应的值无效。对于Flags来说尤其如此。

您会看到它经常像这样使用:

void Foo(MethodImplAttributes attrs)
{
    if (attrs < 0 || attrs > MethodImplAttributes.MaxMethodImplVal)
        throw new ArgumentOutOfRangeException("attrs");
    // do stuff
}

对于有效值范围,实际使用的是稀疏的。测试每个可能的有效值是不切实际的,更有效的是无效值。但是,此检查会消除更多明显的无效值。然后代码只需要处理或忽略其余部分。

根据价值观和评论以及它们在source中的排列方式判断,看起来枚举有多种用途,因此这种检查几乎是必要的。

答案 1 :(得分:0)

据我所知,ts并不意味着使用,它只是MethodImplOptions枚举的最大值。