Partilhar via


Operadores (C# vs. Java)

Translation from VPE for Csharp oferece todos sistema autônomo operadores aplicáveis suportados Java, conforme listados na tabela a seguir.No participante da tabela, você verá alguns novos operadores disponível na translation from VPE for Csharp mas não Java:

Category (Categoria)

Símbolo

Unário

++--+-!~()

Multiplicative

*/%

Aditivo

+ -

deslocar

<< >>

Relacional

< > <= >= instanceof

Igualdade

== !=

E lógico

&

XOR lógico

^

OR lógico

|

AND condicional

&&

OR condicional

||

Condicional

? :

Atribuição

= *= /= %= += -= <<= >>= &= ^= |=

Tipo de operando

typeof

dimensionar do operando

sizeof

Aplicar verificação de estouro

checked

Suprimir verificação de estouro

unchecked

O único operador Java não estão disponível no translation from VPE for Csharp é o operador de deslocar (>>>). Este operador está presente no Java por causa da falta de variáveis não assinados no mesmo linguagem, para casos quando Deslocamento à direita é necessária para inserir um 1 em bits mais significativos.

Translation from VPE for Csharp oferece suporte a variáveis sem assinatura e, portanto, translation from VPE for Csharp só precisa o padrão >> operador. Este operador produz resultados diferentes dependendo do operando assinado ou não assinado.Deslocar para direita um número não assinado insere 0 bit mais significativo enquanto deslocar direita um número assinado copia o bit mais significativo anterior.

Operadores marcados e não selecionados

Operações aritméticas resultará na área de excedentes se o resultado é muito grande para o número de bits alocados para o tipo de dados em uso.Tal estouro pode ser verificado ou ignorado para uma determinada operação de aritmética integral usando o checked e unchecked palavras-chave. Se a expressão for uma expressão de constante utilizando checked, será gerado um erro em time de compilar.

Este é um exemplo simples para ilustrar esses operadores:

class TestCheckedAndUnchecked
{
    static void Main()
    {
        short a = 10000;
        short b = 10000;

        short c = (short)(a * b);                     // unchecked by default
        short d = unchecked((short)(10000 * 10000));  // unchecked
        short e = checked((short)(a * b));            // checked - run-time error

        System.Console.WriteLine(10000 * 10000);  // 100000000
        System.Console.WriteLine(c);              // -7936
        System.Console.WriteLine(d);              // -7936
        System.Console.WriteLine(e);              // no result
    }    
}

Nesse código, o operador não-verificado contorna o erro em time de compilar que outra forma seria causado pela demonstrativo a seguir:

short d = unchecked((short)(10000 * 10000));  // unchecked

Da próxima expressão está desmarcada por padrão, portanto, o valor silenciosamente estouros:

short c = (short)(a * b);                     // unchecked by default

Nós pode forçar a expressão a ser verificado para estouro em time de execução com o operador selecionado:

short e = checked((short)(a * b));            // checked - run-time error

Atribuindo primeiro dois valores a d e c estouros silenciosamente com um valor de-7936 quando o programa é executado, mas durante a tentativa de multiplicar o valor para o uso e checked(), o programa emitirá um OverflowException .

Observação:

Você também pode controlar se deseja verificar estouro aritmético em um bloco de código usando o (comutador de compilador de linha de comando /checked) ou diretamente no Visual Studio em um por-base do projeto.

Consulte também

Conceitos

Guia de Programação C#

Referência

Operadores C#

Outros recursos

Translation from VPE for Csharp linguagem de programação para desenvolvedores Java