c# – 通过属性实现验证的基本问题?请指导我

感谢您的关注和时间.

我想在物业的解决方案中实施验证.这是一个需要您的专家帮助的问题.

我知道在设置值之前我将如何进行验证.但如果传递的值不正确则无法做什么.只是不设置不是一个可接受的解决方案,因为我想向用户返回一个适当的消息(在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;
    }
}

一个想法是使用返回但不允许.

投掷错误看起来不太好,因为我们通常会避免自定义错误.

请指导和帮助我.

感谢期待

haan​​si

最佳答案 您可以考虑从属性设置器中抛出适当的异常.这样,主叫方会明白出了什么问题,特别是假设您有关于设置属性的业务规则.当然你确实希望调用者进行验证,如果仍有问题,那么抛出异常似乎并不那么糟糕.

“从属性设置器中抛出异常是有效和可接受的.”
Property design guidelines

Best practices: throwing exceptions from properties

What exception to throw from a property setter?

点赞