2011-10-17 13 views
15

La única pregunta similar a esto que encontré fue this y la respuesta sugirió tener que usar Reflector para averiguarlo.¿Método de base de llamada al principio o al final del método?

¿Qué tal en la mayoría de los casos? En general, ¿el método base se llama primero o el último en un método?

Noté que en algunas bibliotecas se llama al principio en el método y en XNA Framework se llaman al final de los métodos (base.Update, base.Draw, etcétera).

Respuesta

17

Depende de si desea que su comportamiento derivado suceda antes o después del comportamiento base.

Y no olvide que puede llamar al método base en el medio o no llamarlo en absoluto.

Habiendo dicho eso, en general será llamado como lo primero. Porque entonces su método reemplazado tiene la opción de 'sobrescribir' la configuración hecha por la clase base.

Pero en métodos como Cerrar o Deshacer es más habitual (a veces obligatorio) llamarlo al final.

+4

Por lo general, los escenarios de creación los tienen al principio. Limpiezas al final. Algo así como la actualización podría tenerlo en el medio. –

4

Todo depende de lo que quieras hacer. Realmente no hay una regla "general" sobre lo que debería suceder. Por ejemplo, es posible que desee realizar una validación adicional, luego llamar al método base y luego hacer otra cosa. O tal vez solo quiera saber cuánto tiempo demora en llamar el método base.

Trate cada caso como una situación individual.

Cuestiones relacionadas