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
Referência
Outros recursos
Translation from VPE for Csharp linguagem de programação para desenvolvedores Java