C#中同一个类的多个构造方法之间的调用

  在C#的类中,我们有时会创建多个构造函数,以适应不同的参数情况。有时参数少的构造函数只需要以常量作为默认参数调用另一个构造函数就可以了,可是对于构造函数来说,相互之间如何调用呢?

  Class Test
  {
    // 带参数的构造函数
    public Test(int i)
    {
      Console.WriteLine(i);
    }
    // 没有参数的构造函数
    public Test()
    {
      // 这里我们如何调用Test(int i)
    }
  }

  显然,构造 函数的访问修饰符是public,我们不能像调用私有方法那样直接调用;而它也不是static静态方法,所以也不能通过类名.方法名的方式来调用;如果 作为一个普通公有的方法调用的话,需要创建类的实例,而创建类的实例需要执行构造函数,而其本身就是个构造函数,这就陷入了一个循环。
  事实上,我从网上搜到的资料,C#中类的构造函数之间的调用是这样实现的:

  Class Test
  {
    // 带参数的构造函数
    public Test(int i)
    {
      Console.WriteLine(i);
    }
    // 没有参数的构造函数
    public Test() : Test(0)
    {
      // 看到了吗,这里是不能调用的,调用要放到上面写
    }
  }

  这像什么呢?这像是类的继承。大概构造函数之间的调用,就是一种继承关系吧,而不是我们所说的调用。调用这个词,只是描述起来比较方便而已。
  这种实现方式的实质是什么?为什么这么设计?我还是想进一步探索,欢迎大家共同探讨。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章