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;/*短裤*/
可以,另请参见。