什么":这个"在C#意味着什么?

时间:2015-03-01 14:59:08

标签: c# model-view-controller controller

我正在查看一些代码,我看到了:

public class AccountController : Controller
{
   public AccountController()   
          : this(new xxxxxx...

我知道它是AccountController的构造函数,但是“是”的含义是什么?

谢谢, zalek

4 个答案:

答案 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
   }
}