Operador de conversão

Definição - o que significa o operador de conversão?

Um operador de conversão, em C #, é um operador usado para declarar uma conversão em um tipo definido pelo usuário para que um objeto desse tipo possa ser convertido de ou para outro tipo definido pelo usuário ou tipo básico. Os dois tipos diferentes de conversões definidas pelo usuário incluem conversões implícitas e explícitas.

Em geral, os operadores de conversão explícita e implícita fornecem a capacidade de uma classe ser convertida em outros tipos de dados possíveis.

Um operador de conversão explícita deve ser chamado com uma conversão e é usado quando a conversão deve ser visível para os usuários do operador. É usado em expressões de conversão em que os dois tipos de dados não são totalmente compatíveis e, portanto, requerem um operador de conversão.

Um operador de conversão implícito é fácil de usar. Não requer sintaxe especial e melhora a legibilidade do código. Também ajuda uma classe a converter dados de um tipo de dados em seu tipo compatível sem conversão de tipo. A conversão implícita deve ser usada em situações como chamadas e atribuições de membros de funções, onde não há risco de perda de dados ou ocorrência de exceções.

Definirtec explica o operador de conversão

Uma conversão implícita pode ser definida para uma classe usando a palavra-chave "implícita" junto com a palavra-chave "operador". Uma operação de conversão explícita pode ser definida para uma classe usando a palavra-chave "explícito" junto com a palavra-chave "operador". Ambas as conversões devem ser definidas como estáticas.

Por exemplo, uma classe, RomanNumeral, pode ser definida com dois operadores de conversão. Um operador de conversão implícito pode ser definido para converter da classe RomanNumeral em string para exibir um número na forma de numeral romano; o operador de conversão explícita pode ser definido para realizar a conversão da classe RomanNumeral para inteiro.

A conversão de uma classe em tipo de objeto ou tipo de interface não é permitida. O mesmo se aplica à conversão da classe base em uma classe derivada da classe base.

Para uma determinada classe, os operadores explícitos e implícitos não podem ser especificados para conversão do mesmo tipo em outro.

Deve-se ter cuidado para garantir que uma conversão implícita não resulte em perda de dados ou em uma exceção. Se houver motivos válidos para lançar a exceção, a conversão deve ser do tipo explícito.

Esta definição foi escrita no contexto de C #