Share via


implicit (Referência de C#)

O implicit palavra-chave é usada para declarar um operador de conversão implícita de tipo definido pelo usuário. Usá-lo para permitir conversões implícitas entre um tipo definido pelo usuário e outro tipo, a conversão é garantida que não causa perda de dados.

Exemplo

class Digit
{
    public Digit(double d) { val = d; }
    public double val;
    // ...other members 

    // User-defined conversion from Digit to double 
    public static implicit operator double(Digit d)
    {
        return d.val;
    }
    //  User-defined conversion from double to Digit 
    public static implicit operator Digit(double d)
    {
        return new Digit(d);
    }
}

class Program
{
    static void Main(string[] args)
    {
        Digit dig = new Digit(7);
        //This call invokes the implicit "double" operator 
        double num = dig;
        //This call invokes the implicit "Digit" operator
        Digit dig2 = 12;
        Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
        Console.ReadLine();
    }
}

Eliminando conversões desnecessárias, conversões implícitas podem melhorar a legibilidade do código de origem. No entanto, como conversões implícitas não exigem aos programadores explicitamente convertido de um tipo para outro, é preciso cuidado para evitar resultados inesperados. Em geral, os operadores de conversão implícita devem nunca lançar exceções e nunca perder informações, para que possa ser usados com segurança sem o reconhecimento do programador. Se um operador de conversão não pode atender a esses critérios, ele deve ser marcado explicit. Para obter mais informações, consulte Usando os operadores de conversão.

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Tarefas

Como implementar conversões definidas pelo usuário entre structs (Guia de Programação em C#)

Referência

Palavras-chave C#

explicit (Referência de C#)

operator (Referência de C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#