如果从一个较大类型变量强制转换成一个较小类型,比如从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关键字,可以有效检测并预防数据溢出的情况。
8574

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



