谁知道c#中设置属性取值范围的方法?

请问如何设置propertygrid中属性的取值范围,谢谢!我现在想可以通过在访问器(就是get,set)里加代码,有没有别的方法,比如通过attribute来设置?... 请问如何设置propertygrid中属性的取值范围,谢谢!
我现在想可以通过在访问器(就是get,set)里加代码,有没有别的方法,比如通过attribute来设置?
展开
 我来答
我的手机地带
推荐于2018-04-24 · 超过38用户采纳过TA的回答
知道答主
回答量:183
采纳率:100%
帮助的人:0
展开全部
可以在set中设置超出指定范围时抛出异常,这样在属性网格中录入非法值时就会出现错误提示:

public int MyProperty
{
get
{
return myProperty;
}
set
{
if (value > 100 || value < 0)
{
throw new ArgumentOutOfRangeException("MyProperty只能为0到100之间的整数。");
}
}
}
dickwell
2017-10-30 · TA获得超过240个赞
知道答主
回答量:41
采纳率:100%
帮助的人:5.9万
展开全部
如果你的属性是和数据字段绑定并且用于mvc的显示,那么.net提供了一些常用类型的标准验证属性标签的映射,位于System.ComponentModel.DataAnnotations数据注解空间下。用法如下:
using System.ComponentModel.DataAnnotations;
namespace MvcDA {
[MetadataType(typeof(ProductMD))]
public partial class Product {
public class ProductMD {
[StringLength(50),Required]
public object Name { get; set; }
[StringLength(15)]
public object Color { get; set; }
[Range(0, 9999)]
public object Weight { get; set; }
// public object NoSuchProperty { get; set; }
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wh3520
2007-10-12
知道答主
回答量:6
采纳率:0%
帮助的人:9821
展开全部
attribute只能设置提示来防止超出范围, 至于设置中属性的取值范围,好象不行.
就算能行的话还是建议通过自己代码实现,封装毕竟不是万能的不是吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傲世修罗王
2007-10-12 · TA获得超过1085个赞
知道小有建树答主
回答量:1034
采纳率:0%
帮助的人:739万
展开全部
get 和 set 就可以胜任, 你为啥非用别的方法呢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式