当前位置:  开发笔记 > 编程语言 > 正文

构造函数参数的条件

如何解决《构造函数参数的条件》经验,为你挑选了1个好方法。

是否可以检查构造函数的参数是否存在某些约束,如果不满足则不创建对象并返回一个值来告诉它无法创建.

例如 .

Class Device
{
   string id;
   Device(string ID)
   {
          If (ID.Length != 7)
          {
              //Do not create Object
          }
    id == ID;
   }

}

在这里我只想要7个字符长的id字符串,而不是更少!如果它不是7个字符我不想创建对象是否可以这样做?

除了外部功能检查之外,我想不出任何解决方案,这是我想要远离的东西!



1> Jerry Coffin..:

通常的方法是检查条件,如果不满足,则抛出异常.

另一种可能性是接受一个包含7个字符的数组,因此如果传递了其他内容,代码将无法编译.一般来说,这往往更难以工作(例如,如果某人传递了错误类型的对象,甚至类似于实际包含7个字符的字符串,它通常不会起作用).

一种中间点是创建一个专门用于保存7个字符的字符串的类型,如果长度错误则在其ctor中抛出异常.这可以提供更多的粒度,因此在抛出异常时更容易知道什么是错误的,并且Device如果您传递一个有效的DeviceName(或您喜欢的任何名称)对象,则确保创建对象将成功.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有