方法参数范围

pro*_*cma 4 c# methods attributes

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

对于财产存在(和有效)的类比:

[Range(0,10)]
public int MyProperty{ get; set; }
Run Code Online (Sandbox Code Playgroud)

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

[Range(0,10,"MyParameter")]
public void MyMethod(int MyParameter){...}
Run Code Online (Sandbox Code Playgroud)

我知道有另一种选择

throw new ArgumentOutOfRangeException();
Run Code Online (Sandbox Code Playgroud)

但我要求在属性中替代.

有帮助吗?

p.s*_*w.g 6

语法看起来有点像这样:

public void MyMethod([Range(0,10)] int MyParameter)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

  • 它看起来很棒,但很遗憾它在没有任何验证的情况下无法工作。 (2认同)