方法参数范围

时间:2014-01-09 14:00:21

标签: c# methods attributes

我正在寻找一个属性编写代码来指定参数范围,例如它适用于属性。我需要一个方法。

属性存在(并且有效)的类比:

[Range(0,10)]
public int MyProperty{ get; set; }

方法有什么比喻吗? (下面是我的伪代码):

[Range(0,10,"MyParameter")]
public void MyMethod(int MyParameter){...}

我知道有另类

throw new ArgumentOutOfRangeException();

但我要求在属性中替代。

任何帮助?

2 个答案:

答案 0 :(得分:5)

语法看起来有点像这样:

public void MyMethod([Range(0,10)] int MyParameter)
{
    ...
}

幸运的是,内置的RangeAttribute支持AttributeTargets.Parameter,所以这将编译。但是,是否强制执行此操作取决于完全如何使用它。您需要某种验证框架来检查参数的有效范围。 .NET框架不会在所有方法调用上自动为您执行此操作。

答案 1 :(得分:0)

允许这样做的现有解决方案:

public void MyMethod([Range(0, 10)] int MyParameter) { ... }