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

标签 c# casting type-conversion

我已经为我正在进行的学习练习编写了这段代码,如果碰巧有所不同,我正在为我的 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值。

enter image description here

尝试使用

转换结果
filteredNumber = (byte) (i & mask);

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

相关文章:

c# - 字符串删除html

type-conversion - 在 Ada 中,将 64 位 float 分配给 16 位整数时代码失败怎么可能?

c++ - 引用类型转换运算符 : asking for trouble?

c# - 如何使用属性名称和前缀从属性方面调用特定方法?

c# - CLR 存储过程中的全局异常处理程序

c# - 无法从 Azure Web App 访问文件

typescript - 为什么 TypeScript 在分配给新的空数组时不暗示数组类型?

c++ - 一个 Debug-Print 函数来控制它们

java - Java For Each 语句中的 Cast 元素

java - 需要将 4 个字节的数组转换为 int