我正在寻找一个属性编写代码来指定参数范围,例如它适用于属性。我需要一个方法。
属性存在(并且有效)的类比:
[Range(0,10)]
public int MyProperty{ get; set; }
方法有什么比喻吗? (下面是我的伪代码):
[Range(0,10,"MyParameter")]
public void MyMethod(int MyParameter){...}
我知道有另类
throw new ArgumentOutOfRangeException();
但我要求在属性中替代。
任何帮助?
答案 0 :(得分:5)
语法看起来有点像这样:
public void MyMethod([Range(0,10)] int MyParameter)
{
...
}
幸运的是,内置的RangeAttribute
支持AttributeTargets.Parameter
,所以这将编译。但是,是否强制执行此操作取决于完全如何使用它。您需要某种验证框架来检查参数的有效范围。 .NET框架不会在所有方法调用上自动为您执行此操作。
答案 1 :(得分:0)
允许这样做的现有解决方案:
public void MyMethod([Range(0, 10)] int MyParameter) { ... }