Operadores de conversão
Os operadores de conversão converter um objeto de um tipo para outro tipo. Os operadores de conversão podem ser implícitas ou explícitas. Os operadores de conversão implícita não exigem um conversão a ser especificado no código-fonte de tipo executar a conversão. Os operadores de conversão explícita exigem uma conversão de tipo estar presente no código-fonte para executar a conversão.
A assinatura a seguir mostra o Point operador de conversão explícita da classe para converter entre um Point e um Size.
[Visual Basic]
Public Shared Function op_Explicit( _
ByVal p As Point _
) As Size
[C#]
public static Size op_Explicit(
Point p
);
Não forneça um operador de conversão se tal conversão não é esperado claramente pelos usuários finais.
O ideal é que os dados de pesquisa de cliente devem existir para oferecer suporte à definição de um operador de conversão. Como alternativa, suporte para definir o operador pode ser na forma de exemplos em que um ou mais tipos semelhantes precisam tal conversão.
Não defina os operadores de conversão fora do domínio do tipo.
Por exemplo, Int32, Double, e Decimal são todos os tipos numéricos, enquanto DateTime não é. Convertendo um Double Digite para um DateTime tipo não deve ser implementado sistema autônomo um operador de conversão. Use um construtor para converter um tipo para outro tipo que não esteja no mesmo domínio.
Não forneça um operador de conversão implícita se a conversão é potencialmente com perdas.
Por exemplo, não deve haver uma conversão implícita de Double para Single porque Double tem uma precisão maior que um Single. Um operador de conversão explícita pode ser fornecido para conversões com perdas.
Não lança exceções de conversões implícitas.
Conversões implícitas são chamados pelo sistema; o usuário pode não estar ciente que uma conversão está ocorrendo e terá dificuldade em depurar o código.
Exiba sistema.InvalidCastException se uma telefonar para um operador de conversão resultados em uma conversão de perdas e o contrato do operador não permite conversões com perdas.
Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.
Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de design de membro
Diretrizes de Design para desenvolvimento bibliotecas de classe