Метод базового вызова в начале или конце метода?

Единственный аналогичный вопрос, который я нашел, - this, и ответ предложил использовать Reflector для поиска.

А как насчет большинства случаев? Как правило, базовый метод называется первым или последним в методе?

Я заметил, что в некоторых библиотеках он вызывается в начале в методе и в XNA Framework, они вызываются в конце методов (base.Update, base.Draw и т.д.).

Ответы

Ответ 1

Это зависит от того, хотите ли вы, чтобы производное поведение происходило до или после базового поведения.

И не забывайте, что вы можете вызвать базовый метод посередине или вообще не использовать.

Сказав это, в целом это будет называться первым. Потому что тогда ваш переопределенный метод имеет возможность "перезаписывать" настройки, выполняемые базовым классом.

Но в таких методах, как Close или Dispose, более привычно (иногда обязательно), чтобы вызвать его в конце.

Ответ 2

Все зависит от того, что вы хотите сделать. На самом деле не существует "общего" правила о том, что должно произойти. Например, вы можете выполнить некоторую дополнительную проверку, затем вызвать базовый метод, а затем сделать что-то еще. Или, может быть, вы просто хотите узнать, сколько времени требуется базовому методу для вызова.

Рассматривайте каждый случай как индивидуальную ситуацию.