c# - 在 C# 中减去整数时出现错误“无法将 int 隐式转换为 short”
问题描述
我是 C# 的新手,并为提出这个可能很愚蠢的问题而道歉。但是,我找不到答案。为什么在减去整数时会出现以下错误?
Console.WriteLine(num2.GetType()); // System.Int16
Console.WriteLine(num1.GetType()); // System.Int16
num2 = num1 - num2;
“num1 - num2”得到红色下划线,并显示“无法将 int 隐式转换为 short”
这里有什么问题?
解决方案
如果您在代码中添加额外的行而没有错误行,它会变得更清楚
short num1 = 2;
short num2 = 4;
Console.WriteLine(num2.GetType()); // System.Int16
Console.WriteLine(num1.GetType()); // System.Int16
Console.WriteLine( (num1 - num2).GetType()); // System.Int32
如您所见,从另一个 Int16 中减去一个 Int16 实际上会得到一个 Int32。您不能将结果分配回(没有显式转换),num2
因为它被定义为 Int16。
如果您真的想分配回给它,请使用显式转换解决它num2
num2 = (short)(num1-num2);
推荐阅读
- xml - XML 从 XSD ComplexType 创建元素名称,而不是从元素名称
- javascript - SweetAlert - 更改模态颜色
- javascript - 不确定我的地图对象在示例中使用的空间复杂度是多少?
- java - 为什么执行“boolean t = true,b; b = (t || ((i++) == 0))”后“i”的值没有变化
- go - 为我的大学网站制作自定义 RSS 提要
- android - 查找设备android studio的位置时出错
- python - 通过阈值检测苹果
- python - 如何使用 BeautifulSoup 在 Python 中接收网站链接
- python - 替换除 Python 中第一次出现的子字符串之外的所有内容?
- jquery - 将通过 Django 中的 ajax 发布的数据传递给 HTML