gpt4 book ai didi

c# - byte = byte - byte 需要类型转换吗?

转载 作者:太空狗 更新时间:2023-10-29 18:28:18 29 4
gpt4 key购买 nike

我有以下代码:

foreach (byte b in bytes)
{
byte inv = byte.MaxValue - b;
// Add the new value to a list....
}

当我这样做时,出现以下错误:

Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast?)

这条语句的每一部分都是一个字节。为什么 C# 要将 byte.MaxValue - b 转换为 int?

你不应该在没有转换的情况下做到这一点吗? (即我不想这样做:byte inv = (byte) (byte.MaxValue - b);)

最佳答案

根据C# Language Reference :

because the arithmetic expression on the right-hand side of the assignment operator evaluates to int by default.

这可能是因为您的处理器在访问 4 字节内存地址时比访问 1 字节内存地址更快,因此算术运算符被定义为处理 4 字节操作数。

关于c# - byte = byte - byte 需要类型转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2657264/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com