2013-09-10 4 views
1

Я участвую в процессе обучения, и у меня есть вопрос, на который я не смог найти удовлетворительный ответ.Что такое «этот» конструктор, что это за

this Мне нужно сделать снимок. Я продолжаю видеть это, и люди предложили исправления для моего кода, который его использует. Я действительно не знаю, что именно он делает. Если бы кто-то был так добр, чтобы дать мне базовое изложение, я был бы действительно счастлив.

+3

@ ripdaddy69 справа, OP можно посмотреть на Java документацию, чтобы узнать, что C# было как 20 лет назад. –

+1

@HighCore вопрос не имел конкретного языка, привязанного к нему в то время. –

+0

@ ripdaddy69 без проблем чувак, книги истории из каменного века всегда интересны. –

ответ

8

Он используется для обозначения другого конструктора в том же классе. Вы можете использовать его, чтобы «наследовать» другой конструктор:

public MyClass() {} 

public MyClass(string something) : this() {} 

В приведенном выше, когда второй конструктор будет вызван, он сначала выполняет конструктор без параметров, перед выполнением себя. Обратите внимание, что использование : this() эквивалентно : base(), за исключением того, что оно относится к конструктору того же класса, а не к родительскому классу.

Там в статье о конструкторах here (MSDN), которая обеспечивает пример использования:

public Employee(int annualSalary) 
{ 
    salary = annualSalary; 
} 

public Employee(int weeklySalary, int numberOfWeeks) 
    : this(weeklySalary * numberOfWeeks) 
{ 
} 
0

это ключевое слово является используемый во многих контекстах, и дает полный ответ, будет возможно только тиражирование всего авторитетного источника. The C# Language Reference

это ключевое слово относится к текущему экземпляру класса и также используется в качестве модификатора первого параметра метода расширения.

Смежные вопросы