是否可以创建可以限制数字的最小值或最大值的属性.
例:
[MinValue(1), MaxValue(50)]
public int Size { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我做的Size = -3;价值Size必须是1.
我在谷歌搜索过,找不到关于这种行为的单一例子,也许是因为它无法制作?
我将在属性网格中使用这些属性,因此具有自动验证可以很方便.
目前我这样解决方法限制最小值:
private int size;
[DefaultValue(8)]
public int Size
{
get
{
return size;
}
set
{
size = Math.Max(value, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
所以这就像MinValue(1)
尽管可以创建自定义属性,但属性只是它们所注释的成员的元数据,无法更改其行为。
因此,您将无法通过普通属性获得所需的行为。您需要一些东西来处理属性,以便执行所需的行为。
看一下TypeConverters的可能性。