C# “short”类型的速记?
可以按如下方式指定十进制值:C# “short”类型的速记?,c#,short,C#,Short,可以按如下方式指定十进制值: decimal dec = 1.0m; float flt = 1f; 然后像这样浮动: decimal dec = 1.0m; float flt = 1f; 对于short,是否存在类似的速记?我之所以这样问是因为我将2个短字符相乘,它的默认值为int,我试图避免不必要的施法,因为我知道结果总是和短字符一样小。您需要指定它是一个带施法的短字符值 s3 = (short)(s1 * s2); 您的“速记”错误的是十进制。它应该是1.0m“我正在努力避免不
decimal dec = 1.0m;
float flt = 1f;
然后像这样浮动:
decimal dec = 1.0m;
float flt = 1f;
对于
short
,是否存在类似的速记?我之所以这样问是因为我将2个短字符相乘,它的默认值为int
,我试图避免不必要的施法,因为我知道结果总是和短字符一样小。您需要指定它是一个带施法的短字符值
s3 = (short)(s1 * s2);
您的“速记”错误的是
十进制
。它应该是1.0m
“我正在努力避免不必要的施法”-?当你不得不施展时你就施展…@JohnSaunders-Oops,thanks@MitchWheat我不需要强制转换,答案总是足够小,可以放入简短的,无论如何,这并不能真正回答我的问题。你的“不必要的强制转换”将由编译器完成,因此它相当于这个“速记”。这是因为operator*
的C#预定义重载不包括任何short operator*(short,short)
重载。因此,这就是您需要强制转换的技术原因。由于重载解析,“产品”的类型为int
。但是请注意:如果您对将结果放入原始变量之一没有异议,则可以使用不需要强制转换的*=
。示例:s1*=s2;/*短裤*/
可以,另请参见。