Pergunta sobre implicit, .net, operators, c# – Como obter “Find Usages” trabalhando com métodos implícitos do operador?

6

Eu nunca gostei de operadores implícitos (prefiro métodos de extensão) porque é difícil ver visualmente quando essa conversão / elenco acontece no código.

Imagine se você tiver um exemplo como abaixo:

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

O operador implícito acima ajuda você a converter / converter ofertas no formato Xml no Deal Object.

Normalmente, quando você clica com o botão direito do mouse em um método, pode usar "Localizar usos" (ou Alt + F7), o que é bastante útil. Há algo semelhante para operadores implícitos?

Eu acho que é outro motivo para usar os métodos de extensões sempre que possível.

Sua resposta

1   a resposta
11

mas não tenho certeza. Quando eu preciso encontrar usos, eu faço do jeito do pobre homem e removo o operador implícito, recompilo e localizo os erros.

Suponho que, teoricamente, o compilador pode perder um caso se puder usar um operador implícito diferente (ou alternar para uma sobrecarga de tipo "objeto" de um método), mas ele tende a funcionar para meus usos. Tenho certeza de que há uma solução melhor, mas funcionou para mim até agora.

EDIT: Só tinha um pensamento e testado. Marcando seu operador implícito como[Obsolete] vai realmente resultar em um aviso de compilador onde quer que você o use! Eu suponho que isso vai pegar esses casos de canto onde existem outras sobrecargas válidas que você sente falta de ter removido completamente o operador implícito.

que é um bom Chris, dessa forma você pode pelo menos receber um aviso (sem quebrar a compilação). vai esperar se alguém tiver uma ideia melhor. Bek Raupov
O Resharper também não encontra usos de operadores implícitos. Peter Ritchie
feito o mesmo caminho do homem pobre também. :) o que é bastante assustador se você tiver uma solução enorme Bek Raupov
Isso é ruim. Você pensaria que haveria uma maneira, já que os operadores implícitos (acredito) são estaticamente compilados e poderiam ser facilmente descobertos como qualquer método estático. Chris Sinclair

Perguntas relacionadas