如果从一个较大类型变量强制转换成一个较小类型,比如从Long转换成Int,怎样才能妥善处理可能造成的数据丢失问题。
Checked方法是最简单的一种方法,代码如下:
publicvoidUseChecked(longa,longb)
...{
Int32r=0;
try
...{
r=checked((Int32)(a+b));
}
catch(Exception)
...{
MessageBox.Show("溢出");
}
}
如果使用MaxValue和MinValue关键字,则可以在转换前进行有效的判断,从而避免数据丢失。
Int32r=65535;
shorts=0;
if(r<=short.MaxValue&&r>=short.MinValue)
...{
s=(short)r;
}
else
MessageBox.Show("有数据丢失!");
本文介绍如何在不同数据类型间安全转换以避免数据丢失,通过使用Checked方法和MaxValue/MinValue关键字来确保转换的安全性。
1万+

被折叠的 条评论
为什么被折叠?



