Для чего используется ключевое слово «this» после конструктора?

#c# #avalonedit

#c# #avalonedit

Вопрос:

Следующий код взят из проекта AvalonEdit:

 // Creates a new TextEditor instance.

public TextEditor() : this(new TextArea())
{
}
  

Я понятия не имею, что делает : this(new ... часть. Не могли бы вы, пожалуйста, помочь объяснить синтаксис C #?

Комментарии:

1. @AlexeiLevenkov — ложный вопрос не был простым, и ответ можно использовать только с инструкциями из вашего комментария здесь.

2. Учитывая, что в отмеченном повторяющемся вопросе фактически не указана цепочка конструкторов в качестве опции, я должен был бы сказать, что это не дубликат.

3. ОК, doh, прочитал список 3 раза, по-прежнему не обнаружил эту запись. Возможно, для меня слишком поздно в пятницу вечером. Я согласен, дубликат перечисляет это. (и нет, я не голосовал за повторное открытие). В свою защиту скажу, что «передавать параметры между конструкторами» — не очень хорошее описание выполняемой операции. Ну да ладно. Слишком поздно в пятницу 🙂

4. @Sabuncu пожалуйста, отредактируйте свой вопрос, чтобы он выглядел разумно «пожалуйста, объясните код» — ужасное название. Может быть, что-то вроде строки «что означает «это» после конструктора»…

5. @Sabuncu — определенно лучше, чем текущий. Может быть, также упомянуть конструктор.

Ответ №1:

Это означает, что этот конструктор вызывает другой конструктор, который принимает аргумент типа TextArea . Это называется связыванием конструктора.

Смотрите ссылку, предоставленную @Lasse: http://msdn.microsoft.com/en-us/library/aa645603 (v=vs.71).aspx

Комментарии:

1. @LasseV.Karlsen Спасибо! Надеюсь, вы не возражаете, что я вставил вашу ссылку в ответ. Оно более канонично, чем то, которое я использовал раньше.

2. Вовсе нет. В любом случае это не гарантировало ответа, который был бы лучше вашего.