【发布时间】:2025-12-26 15:30:06
【问题描述】:
感谢您的关注和时间。
我想在属性的 settter 中实现验证。这是一个需要您的专家帮助的问题。
我知道在设置值之前我将如何进行验证。但如果传递的值不正确,则不知道该怎么做。只是不设置不是一个可接受的解决方案,因为我想向用户返回适当的消息(在 Web 表单的标签中)。我的示例代码是:
private int id;
public int Id
{
get
{ return id; }
set
{
bool result = IsNumber(value);
if (result==false)
{
// What to do if passed data is not valid ? how to give a appropriate message to user that what is wrong ?
}
id = value;
}
}
一个想法是使用return,但这是不允许的。
抛出错误看起来不太好,因为我们通常会避免抛出自定义错误。
请指导和帮助我。
感谢期待
汉斯
【问题讨论】:
-
"result==false",你为什么需要比较两个布尔值然后决定行动?为什么不简单地“if(!result)”,变量名也应该表达它所持有的值的上下文和含义。
-
不确定你的 IsNumber 方法是做什么的,但因为它是一个 int 属性的集合,所以这总是正确的。
-
感谢@Amby 和@Rob van Groenewoud,我只是以这段代码为例。您能否就我的问题提出建议,即如果值无效,如何向用户界面发送指示?谢谢朋友
标签: c# asp.net validation fluentvalidation fluentvalidation-2.0