1
resposta

A variável "diasDaSemana" só imprimi "sex" e não a soma dos dias.

public void Executar() {

        DiasDaSemana diasDaSemana = DiasDaSemana.Seg | DiasDaSemana.Sex | DiasDaSemana.Qui;

        Console.WriteLine(diasDaSemana);
    }
    enum DiasDaSemana
    {
        Seg = 1,
        Ter,
        Qua,
        Qui,
        Sex,
        Sab,
        Dom
    }
1 resposta

Olá Romero, tudo bem?

Isso ocorre porque o operador | é um operador lógico binário, onde ele retornará bool caso seja uma operação lógica ou caso houver valores binários, retornará a soma entre esses valores.

Neste caso retorna Sex que é referente ao valor 5, porque somou apenas a segunda e a quinta, que recebem os valores 1 e 4 respectivamente. Adicionando a quarta, que tem o valor 3, temos o resultado 8, então é mostrado Dom, mas caso a soma seja maior que 8, será mostrado Dom de qualquer jeito.

Para mais informações, segue a documentação sobre o operador.

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software