2014-11-24 79 views

回答

7

: this(…)构造函数调用之后的另一个具有指定参数的构造函数。例如:

public class A 
{ 
    public A (string foo) 
    { 
     Console.WriteLine(foo); 
    } 

    public A() : this("foo bar") 
    {} 
} 

这将允许您创建的A一个对象,并传递一个字符串来定制它的输出;或者你可以调用它没有参数导致第二个构造函数被调用,它本身调用第一个以"foo bar"作为参数。

还有一个类似的关键字,当A从其他类继承时使用。在这种情况下,你可以使用base,而不是this直接调用基类的构造函数:

public class A : B 
{ 
    public A() : base("foo bar") 
    {} 
} 

所以,当你现在创建的A的对象,而A的构造函数会调用的B一个构造函数,接受那里有一个字符串并通过"foo bar"

欲了解更多信息,请参阅C#编程指南的“Using constructors”部分。

3

如果参数的构造函数被调用时,它将调用构造接受一个字符串,传递".."。在你的情况下,虽然没有这样的构造函数,所以代码不会编译。

相关问题