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

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

decimal dec = 1.0m;

然后像这样浮动:

float flt = 1f;

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

【问题讨论】:

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

标签: c# short


【解决方案1】:

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

s3 = (short)(s1 * s2);

【讨论】:

  • 这是因为 operator * 的 C# 预定义重载不包括任何 short operator *(short, short) 重载。这就是你需要投射的技术原因。由于重载解析,“产品”的类型为int但是请注意:如果您可以将结果放入原始变量之一,您可以使用不需要强制转换的*=。示例:s1 *= s2; /* OK for shorts */
猜你喜欢
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 2015-04-03
  • 2020-01-10
相关资源
最近更新 更多