2012-03-07 18 views
5

¿Cuál es la razón/lógica/obstáculo detrás del hecho de que los métodos parciales solo pueden tener un tipo de retorno nulo?¿Por qué los métodos parciales solo pueden tener un tipo de retorno anulado?

gracias

+1

posible duplicado de [¿Por qué los métodos parciales no pueden devolver nada?] (Http://stackoverflow.com/questions/6954572/why-cant-partial-methods-return- anything) – BoltClock

+0

¿Cómo espera un método parcial? con un tipo de devolución no nulo para trabajar? ¿Deberían devolver 'default (T)' o qué? – CodesInChaos

Respuesta

9

Los métodos parciales están diseñados para ser dejados de lado si no proporcionó una implementación para ellos. El compilador realmente elimina llamadas a métodos parciales que no están implementados.

Esto también destaca por qué no pueden devolver nada: si confió en un valor de retorno sin implementar el método parcial, ¿entonces qué? Tendría algo sin inicializar, a pesar de que el código muestra claramente una tarea.

+0

Finalmente entendido con su publicación. Tuve dificultad para encontrar la respuesta en otro lugar. ¡Gracias! – ckv

0

métodos parciales no implementadas se eliminan en tiempo de compilación. Un compilador puede ignorar una llamada a los métodos de anulación porque solo modifican el estado de un objeto ya existente. No puede eliminar los métodos que devuelven objetos porque eso invalidaría el código.

2

La implementación de métodos parciales está pensada como opcional.

Si no se proporciona la implementación, una llamada sigue siendo válida, pero el compilador la eliminará silenciosamente. A un delegado solo se le pueden asignar métodos parciales que se implementan.

Esto significa que no deberían tener efectos secundarios, de hecho no hay valores devueltos o parámetros de "salida", no pueden ser virtuales y son siempre privados.

Más here.

Cuestiones relacionadas