C#构造函数使用this


C# constructor using this

本问题已经有最佳答案,请猛点这里访问。

有人能解释一下构造函数中: this(123)的含义吗?

1
2
3
4
5
6
7
public class MyObject
{      
    public MyObject(): this(123)
    {
    }
    ............
}


因为类有另一个以int为参数的构造函数。

1
2
3
4
5
6
7
8
9
10
11
public class MyObject
{
    public MyObject()
        : this(123)
    {
    }

    public MyObject(int x) //something like this
    {
    }
}

请参见:使用构造函数(C编程指南)

A constructor can invoke another constructor in the same object by
using the this keyword.


您有另一个接受int的构造函数(认为它可以是long或double,或者int可以隐式强制转换到的任何其他构造函数)

1
2
3
4
5
6
7
8
9
10
11
    public class MyObject
    {      
       public MyObject(): this(123)
       {
       }

       public MyObject(int num)
       {
          //do something with the num
       }
   }


这用于从同一类中的另一个构造函数调用。请参阅本文以获得更好的理解。

http://www.codeproject.com/articles/7011/an-intro-to-constructors-in-c


这意味着,您正在调用另一个具有固定值"123"的构造函数:

1
2
3
4
5
6
7
8
9
10
11
12
public class MyObject
{      
    public MyObject(): this(123)
    {

    }

    public MyObject(int number)
    {

    }
}

方法:调用new MyObject()时,不带任何参数,等于调用new MyObject(123);时。


提供的语法用于"构造函数链接",在当前构造函数的主体之前调用指定的构造函数(接受整数参数)。


这意味着"在执行大括号之间的操作之前,使用参数123执行适当的构造函数"