2012-05-14 19 views
6

Nunca me gustaron los operadores implícitos (prefiero los métodos de extensión) porque es difícil ver visualmente cuando ese lanzamiento/conversión ocurre en el código.¿Cómo obtener "Buscar usos" trabajando con métodos de operador implícitos?

Imagínese si usted tiene ejemplo, como a continuación:

public static implicit operator Deal(string dealAsXml) 
{ 
    //convert the xml into Deal object 
} 

Por encima de operador implícita ayuda a que usted eche/acuerdo de convertir en formato XML en reparto de objetos.

Por lo general, cuando hace clic derecho en un método, puede utilizar "Buscar usos" (o Alt + F7), lo cual es bastante útil, ¿hay algo similar para los operadores implícitos?

Creo que esa es otra razón para utilizar los métodos de extensiones siempre que sea posible.

Respuesta

10

Tal vez algo como Resharper puede hacerlo, pero no estoy seguro. Cuando necesito encontrar usos, lo hago por el camino del pobre y elimino el operador implícito, recompilo y encuentro los errores.

Supongo teóricamente que el compilador puede perder un caso si puede utilizar un operador implícito diferente (o cambiar a una sobrecarga de tipo "objeto" de un método), pero tiende a funcionar para mis usos. Estoy seguro de que hay una solución mejor, pero hasta ahora ha funcionado.

EDIT: Acabo de pensarlo y lo he probado. Marcar su operador implícito como [Obsolete] resultará en una advertencia de compilador donde quiera que la use. Supongo que esto atrapará aquellos casos de esquina donde hay otras sobrecargas válidas que se perderían al eliminar por completo el operador implícito.

+3

Resharper tampoco encuentra usos de operadores implícitos. –

+0

hizo lo mismo del pobre hombre también. :) que es bastante desalentador si tienes una gran solución –

+0

Eso es muy malo. Uno pensaría que habría una manera ya que los operadores implícitos (creo) están compilados estáticamente y serían fácilmente detectables como cualquier método estático. –

Cuestiones relacionadas