在C#属性setter中为ArgumentException分配给'paramName'参数的值?

时间:2009-03-25 12:58:55

标签: c# exception naming-conventions

如果将无效值传递给属性设置器并且抛出ArgumentException(或者从它派生的类的可能性),应该为paramName参数分配什么值?

value,因为它似乎是实际的论点?

传递属性的名称不是更清楚吗?

3 个答案:

答案 0 :(得分:9)

ArgumentExceptions包含无效的参数名称。对于属性设置器,实际参数是命名值(在源代码和生成代码中)。使用此名称更加一致。

答案 1 :(得分:8)

在使用Reflector进行大量探索之后(尝试查找具有可写属性的CLR对象),我找到的第一个(FileStream.Position)使用“value”作为参数名称:

if (value < 0L)
{
    throw new ArgumentOutOfRangeException("value", 
                 Environment.GetResourceString("NeedNonNegNum"));
}

答案 2 :(得分:2)

是的,传递财产名称会更清楚。