【发布时间】:2010-10-29 23:15:02
【问题描述】:
我必须在 VS2008 .net 3.5 中使用 WinForms 来跟踪代码:
byte percent = 70;
byte zero = 0;
Bitmap copy = (Bitmap)image1.Clone();
...
Color oColor = copy.GetPixel(x, y);
byte oR = (byte)(oColor.R - percent < zero ? zero : oColor.R - percent);
当我离开最后一行代码的“(byte)”时,我收到一个编译器错误,提示“无法将类型'int'隐式转换为'byte'。 "如果一切都是byte 类型,而byte 是整数类型...那我为什么需要强制转换?
【问题讨论】:
-
Eric Lippert 说,“我不认为字节是“数字”;我认为它们是可以解释为数字或字符的位模式, “见stackoverflow.com/questions/941584/byte-byte-int-why-c。
-
你们确实意识到你已经将它标记为重复,即使它被问之前“这里已经有答案”链接?
-
见鬼,现在它甚至说“以前问过”,尽管另一个问题是在三年后问的。
-
呃,实际上,每个数据值都是一个位模式,可以解释为一个数字。
标签: c# .net casting integer byte