Pregunta sobre operators, implicit, .net, c# – ¿Cómo obtener "Buscar usos" trabajando con métodos de operador implícitos?

6

Nunca me gustaron los operadores implícitos (prefiero los métodos de extensión) porque es difícil de ver visualmente cuando esa conversión / conversión ocurre en el código.

Imagina si tienes un ejemplo como el siguiente:

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

El operador implícito anterior lo ayuda a emitir / convertir deal en formato Xml en Deal Object.

Por lo general, cuando hace clic con el botón derecho en un método, puede usar "Encontrar usos" (o Alt + F7), lo cual es muy útil, ¿hay algo similar para los operadores implícitos?

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

Tu respuesta

1   la respuesta
11

pero no estoy seguro. Cuando necesito encontrar usos, lo hago a la manera de los pobres y elimino el operador implícito, recompilo y encuentro los errores.

Supongo que, en teoría, el compilador podría pasar por alto un caso si puede usar 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 me ha funcionado hasta ahora.

EDITAR: Sólo tenía un pensamiento y lo probó. Marcando su operador implícito como[Obsolete] en realidad resultará en una advertencia del compilador donde sea que lo uses! Supongo que esto detectará los casos de esquina en los que hay otras sobrecargas válidas que extrañarías haber eliminado por completo del operador implícito.

ese es un buen Chris, de esa manera al menos puedes recibir una advertencia (sin romper la compilación). esperará si alguien más tiene una mejor idea. Bek Raupov
Resharper tampoco encuentra usos de operadores implícitos. Peter Ritchie
hecho el mismo camino de los pobres también. :) que es bastante desalentador si tienes una gran solución Bek Raupov
Sin lugar a duda; Me gustaría saber si hay una forma de verificarlo / informar a través del estándarFind Symbol Results ventana solo para tener consistencia en el flujo de trabajo y no tener que modificar el código. Especialmente en el caso de que estás buscando en bibliotecas de terceros donde no puedes agregar exactamente el atributo obsoleto. Chris Sinclair

Preguntas relacionadas