首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果不在构造函数中,我如何验证数据?

如果不在构造函数中,我如何验证数据?
EN

Stack Overflow用户
提问于 2019-10-17 19:34:56
回答 1查看 44关注 0票数 0

微软的代码指南禁止构造函数中的复杂操作(参见https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/constructor)

如果不在构造函数中,验证输入数据的正确方法是什么?下面是一个示例:

代码语言:javascript
复制
class User{
    User(string id){
        Validate(id); //Looks up id in database or remote service
    }
}

不应在构造函数中调用验证。但是我如何确保我没有一个带有无效id的User类呢?

EN

回答 1

Stack Overflow用户

发布于 2019-10-17 19:51:46

基本上,这取决于操作是否实际上是复杂的。

如果操作比较复杂,可以使用properties并验证里面的值:

代码语言:javascript
复制
class User{

    private string _id;

    public int Id
    {
       get
       {
           return _id;
       }
       set
       {
           if (Validate(value))
           {
               _id = value;
           }
       }
    }

    User(){

    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58431703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档