我已经为正在进行的学习练习编写了此代码,如果碰巧会有所作为,则将在我的Android手机上使用c#Offline Compiler应用程序。

每当我尝试运行该程序时,都会弹出一个编译错误,告诉我我试图将int类型隐式转换为byte。我已尽一切可能检查了一切,我终生无法找到问题,而且似乎无法在线找到解决方案或问题。我觉得这是我还没有学到的简单东西。这是代码...有什么想法吗?

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;

最佳答案

这是因为&运算符将int值用作参数并返回int值。

c# - 变量在声明后似乎正在改变类型-LMLPHP

尝试使用

filteredNumber = (byte) (i & mask);

关于c# - 变量在声明后似乎正在改变类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50544324/

10-10 07:35