C # adicionando conversões implícitas a tipos existentes
Existe uma maneira em c # para adicionarimplícito conversões para tipos já definidos em outros assemblies?
Por exemplo, se eu estiver usando dois conjuntos diferentes, cada um com seus própriosVector3 struct
, e usá-lo em suas APIs, seria bom poder definir uma conversão uma vez e depois passar umFoo.Vector3
para um método que espera umaBar.Vector3
e tê-loautomaticamente convertido.
Se eu tivesse a fonte das bibliotecas, poderia adicionar operadores de conversão implícitos. Sem essa fonte, atualmente estou fazendo a conversão explicitamente eu mesma com uma função auxiliar todas as vezes. Estou esperando uma maneira melhor.
Eu percebo que eu poderia criar o meu próprioVector3 struct
com operadores de conversão implícitos de e para as outras duas estruturas, mas isso não resolveria todos os casos em que eu querodiretamente passar um objeto de um tipo (definido externamente) para um método que espera o outro.
Pergunta bônus: existe alguma coisa que os autores de bibliotecas que expõem coisas como uma estrutura Vector3 em sua API devam fazer para facilitar a facilidade de uso nesse sentido?