Кажется, что переменные меняют тип после того, как они объявлены - PullRequest
0 голосов
/ 26 мая 2018

Я написал этот код для учебного упражнения, над которым я работал, и использую приложение c # Offline Compiler для своего телефона Android, если это что-то изменит.

Всякий раз, когда я пытаюсь запустить программу, появляется ошибка компиляции, которая говорит мне, что я пытаюсь неявно преобразовать тип int в байт.Я проверил все как можно лучше, и я не могу на всю жизнь найти проблему, и я не могу найти решение или проблему в Интернете.У меня такое ощущение, что это нечто простое, чего я еще не изучил.Вот код ... какие-нибудь идеи?

public static class Program
{
    public static void Main()
    {

        for (byte i = 1; i < 255; i++)
        {
            byte mask = 4;
            byte filteredNumber;

            filteredNumber = i & mask;

            if (filteredNumber == 4)
                Console.WriteLine(i);
        }
    }
}

Кажется, проблема возникает вокруг линии filteredNumber = i & mask;

1 Ответ

0 голосов
/ 26 мая 2018

Это происходит потому, что оператор & принимает значения int в качестве параметров и возвращает значение int.

enter image description here

Попробуйте выполнить приведениерезультат с

filteredNumber = (byte) (i & mask);
...