Ir para conteúdo
Fórum Script Brasil
  • 0

Operadores


Denis Bittencourt Muniz

Pergunta

Fala gente!

Queria saber qual a finalidade desses operadores: & | ^ ~.

Gostaria, se possível, comparar a função desses operadores com o os operadores do Visual Basic. Por exemplo:

Modulação:

Em VB: 'Mod'

Em C#: '%'

Gostaria também saber se o C# tem algum operador com a mesma função do operador 'Like' do Visual Basic.

Grato desde já! Falows!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Fala gente!

Queria saber qual a finalidade desses operadores: & | ^ ~.

Gostaria, se possível, comparar a função desses operadores com o os operadores do Visual Basic.

& = And

http://msdn.microsoft.com/library/en-us/cs...andoperator.asp

| = Or

http://msdn.microsoft.com/library/en-us/cs...baroperator.asp

^ = Xor

http://msdn.microsoft.com/library/en-us/cs...eoroperator.asp

~ = Complemento - Acho que não tem equivalente no VB.NET.

http://msdn.microsoft.com/library/en-us/cs...rf~operator.asp

Para uma lista completa:

http://msdn.microsoft.com/library/default....rpoperators.asp

Por exemplo:

Modulação:

Em VB: 'Mod'

Em C#: '%'

Esse operador se chama "Modulus" é o resto da divisão de um número por outro.

Gostaria também saber se o C# tem algum operador com a mesma função do operador 'Like' do Visual Basic.

Que eu saiba não. Mas, a utilização de expressões regulares pode realizar a mesma função do operador Like. Dê uma olhada nestas páginas:

http://msdn.microsoft.com/library/default....Expressions.asp

http://msdn.microsoft.com/library/default....sionclasses.asp

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Me desculpe pela ignorância, mas o que seria 'curto-circuito' em operadores? Você poderia me explicar com suas próprias palavras, pois no site da Microsoft, a MSDN está em inglês.

Grato. Falows!

Link para o comentário
Compartilhar em outros sites

  • 0

Me desculpe pela ignorância, mas o que seria 'curto-circuito' em operadores? Você poderia me explicar com suas próprias palavras, pois no site da Microsoft, a MSDN está em inglês.

O curto-circuito é testar apenas o primeiro operando, e de acordo com o valor dele testar ou não o segundo. Em uma operação And, se logo o primeiro operando for Falso nem é necessário testar o segundo para saber que o resultado será Falso (já que ambos devem ser Verdadeiros para que o resultado seja Verdadeiro). É isso que && e AndAlso fazem. O mesmo vale para uma operação Or, pois se logo o primeiro operando for Verdadeiro, o resultado será Verdadeiro (já que basta apenas um dos operandos ser Verdadeiro para que o resultado seja Verdadeiro). É isso que || e OrElse fazem.

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Mas Graymalkin, qual a vantagem nisso? Você poderia postar um exemplo para que eu realmente possa ver a diferença de '&' e '&&' e, também, '|' e '||'.

Grato. Falows!

Link para o comentário
Compartilhar em outros sites

  • 0

O interessante de se utilizar o curto-circuíto é que mesmo que o segundo operando possa gerar um erro o primeiro operando é que vai definir se ele vai ser executado ou não. Os dois casos abaixo gerariam erros se os operadores | e & fossem utilizados:

int divisor = 0;
int valor = 5;

if ((valor>0) || ((valor/divisor)>0))
    Console.WriteLine("Valor é maior que 0!");
No caso acima, o segundo operando tenta dividir um valor ("valor") por zero ("divisor"). Porém, como o primeiro operando vai ser desenvolvido para Verdadeiro, o segundo não vai ser executado.
string s = "";

string[] elementos = s.Split(';');
if ((elementos.Length>1) && (elementos[1]=="qualquer coisa"))
    Console.WriteLine("É qualquer coisa!");
else
    Console.WriteLine("Não é qualquer coisa!");

Neste caso, o segundo operando tenta acessar a segunda posição (1) do vetor (e esta posição não existe), porém como o primeiro operando vai evoluir para Falso (o tamanho do vetor vai ser 1), o segundo não será executado.

As palavras-chaves destes operadores ficam mais claras no VB.NET, já que "AndAlso" significa "E Também" e "OrElse" significa "Ou Senão" (semanticamente diferentes de "E" e "Ou").

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...