C 编程人员容易犯的10个C#错误4

文章作者 100test 发表时间 2007:03:10 17:09:48
来源 100Test.Com百考试题网


错误4:注意隐性的数据类型转换

Boxing和unboxing是使值型数据类型被当作索引型数据类型使用的二个过程。值型变量可以被包装进一个对象中,然后再被解包回值型变量。包括内置数据类型在内的所有C#中的数据类型都可以被隐性地转化为一个对象。包装一个值型变量就会生成一个对象的实例,然后将变量拷贝到实例中。

Boxing是隐性的,如果在需要索引型数据类型的地方使用了值型数据类型的变量,值型变量就会隐性地转化为索引型数据类型的变量。Boxing会影响代码执行的性能,因此应当尽量避免,尤其是在数据量较大的时候。

如果要将一个打包的对象转换回原来的值型变量,必须显性地对它进行解包。解包需要二个步骤:首先对对象实例进行检查,确保它们是由值型的变量被包装成的;第二步将实例中的值拷贝到值型变量中。为了确保解包成功,被解包的对象必须是通过打包一个值型变量的值生成的对象的索引。

using System.
public class UnboxingTest
{
public static void Main()
{
int i = 123.

//打包
object o = i.

// 解包(必须是显性的)
int j = (int) o.
Console.WriteLine("j: {0}", j).
}
}


如果被解包的对象是无效的,或是一个不同数据类型对象的索引,就会产生InvalidCastException异外。


相关文章


C 编程人员容易犯的10个C#错误5
计算机等级考试二级C语言上机题23
C 编程人员容易犯的10个C#错误3
C 编程人员容易犯的10个C#错误4
计算机等级考试二级C语言模拟试题汇总
计算机等级考试二级C语言上机100题
C 编程人员容易犯的10个C#错误2
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛