`short` 类型的简写? [复制]

Posted

技术标签:

【中文标题】`short` 类型的简写? [复制]【英文标题】:Shorthand for `short` type? [duplicate] 【发布时间】:2013-11-29 22:33:39 【问题描述】:

您可以像这样分配十进制值:

decimal dec = 1.0m;

然后像这样浮动:

float flt = 1f;

short 是否存在类似的简写?我之所以问是因为我将 2 条短裤相乘,它默认为 int,并且我试图避免不必要的强制转换,因为我知道结果总是和短裤一样小。

【问题讨论】:

decimal 的“速记”错误。应该是1.0m “我正在努力避免不必要的演员” - ?当你必须施放时你施放.... @JohnSaunders 哎呀,谢谢 @MitchWheat 我不需要投射,答案总是小到足以放入short,无论如何这并不能真正回答我的问题 您的“不必要的转换”将由编译器完成,因此它相当于这个“速记”。见***.com/a/166809/1659828 【参考方案1】:

您需要通过强制转换指定它是一个短值。

s3 = (short)(s1 * s2);

【讨论】:

这是因为 operator * 的 C# 预定义重载不包括任何 short operator *(short, short) 重载。这就是你需要投射的技术原因。由于重载解析,“产品”的类型为int但是请注意:如果您可以将结果放入原始变量之一,您可以使用不需要强制转换的*=。示例:s1 *= s2; /* OK for shorts */ 另见this "integer sum blues" answer。

以上是关于`short` 类型的简写? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

短+短!=短? [复制]

java简单运算-short类型与int类型

Java中short类型想加为啥会成为int型

java String类型 “你好” 转 short[]类型 麻烦快

JAVA int类型转short类型

C语言数据类型中int与short的区别