C#几种常见误解

C#几种常见误解

1. 结构是一种轻型或小型的类   

    在有些情况下,结构会比类具有更好的性能,由于结构是值类型,保存在栈里,对结构数据的存取,传递性能较好. 但是有些情况下,比如做为方法的参数进行传参时,类只要传递相应的引用地址,而结构需要进行复制其所有的数据,这时,结构就不会显得较"轻"了. 

2. 值类型保存在栈里,引用类型保存在堆里 

值类型的数据不一定就保存在栈里,要看他的类型,如果值类型作为一个类的成员,比如字段,属性,这时候,他保存的位置应该是相应对象所在的位置,就是堆里了. 值类型只有在作为方法的参数或方法内的局部变量时,才存在于栈里. 

3. 对象默认使用引用方式进行传递 

这种说法也是错误的,不管是值类型还是引用类型作为参数,传递的时候都是进行值拷贝,也就是把实参的值赋给形参,不同的是值类型保存的是他的值,所以拷贝的是原来变量的值,而引用类型保存的是对象的引用,也就是地址,拷贝的结果是形参与实形都指向了同一个对象

posted @ 2008-07-11 13:43  笑少  阅读(297)  评论(0编辑  收藏  举报