首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改代码以解决字节溢出问题

如何更改代码以解决字节溢出问题
EN

Stack Overflow用户
提问于 2018-09-27 06:41:36
回答 1查看 28关注 0票数 1

我是C#的新手。

为什么使用这两种方法会得到不同的结果:

方法一

  byte x = 255;
  x = x + 1;

方法二

  byte x = 255;
  x += 1;

方法I会导致无法成功编译的错误。

S0266 C#不能将类型'int‘隐式转换为'byte’。存在显式转换(是否缺少强制转换?)

如果我添加了一个cast并写道

byte x = (byte)255;
x = x + 1; 

这样,造型就变得多余了。

如果我写

byte x = 255;
x = x + (byte)1;

演员阵容也是多余的。

我该怎么做才能用方法I得到0的结果?

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 06:57:33

将int转换为byte需要显式强制转换,因此您必须编写

byte x = 255;
x = (byte)(x + 1);

通常,隐式转换(不需要强制转换)是为无损类型转换保留的,而显式转换是为潜在的有损转换保留的,这是int到byte的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52526962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档