我正在查看一些代码,我看到了:
public class AccountController : Controller
{
public AccountController()
: this(new xxxxxx...
我知道它是AccountController的构造函数,但是“是”的含义是什么?
谢谢, zalek
答案 0 :(得分:1)
:this
。
考虑一下:
public class Offer {
public string offerTitle { get; set; }
public string offerDescription { get; set; }
public string offerLocation { get; set; }
public Offer():this("title") {
}
public Offer(string offerTitle) {
this.offerTitle = offerTitle;
}
}
如果调用者调用new Offer()
,则在内部调用另一个构造函数,将offerTitle
设置为“title”。
答案 1 :(得分:0)
它确保调用同一类中的重载构造函数,例如:
class MyClass
{
public MyClass(object obj) : this()
{
Console.WriteLine("world");
}
public MyClass()
{
Console.WriteLine("Hello");
}
}
使用参数调用构造函数时的输出:
您好
世界
答案 2 :(得分:0)
:this
表示它将调用父的主类构造函数(在本例中为Controller)
答案 3 :(得分:0)
this
关键字允许您从同一个类中的另一个构造函数调用一个构造函数。假设你的类中有两个构造函数,一个带参数,另一个带参数。您可以在没有参数的构造函数上使用this
关键字将默认值传递给带有参数的构造函数,如下所示:
public class AccountController : Controller
{
public AccountController() : this(0, "")
{
// some code
}
public AccountController(int x, string y)
{
// some code
}
}
还可以使用base
关键字来调用基类中的构造函数。以下代码中的构造函数将调用Controller
类的构造函数。
public class AccountController : Controller
{
public AccountController() : base()
{
// some code
}
}