- 0
- 0
- 约2.14万字
- 约 19页
- 2026-06-05 发布于河北
- 举报
进入IT企业必读的200个.NET面试题及详细答案
第一部分:基础入门题(1-50题,适合应届生/初级开发)
一、C#基础(1-20题)
1.请说明C#中值类型和引用类型的区别,举例说明
答案:核心区别是存储位置和赋值方式不同。
值类型:存储在栈上,直接存储数据本身,赋值时复制整个数据,比如int、float、bool、struct、enum。举例:inta=10;intb=a;b=20;此时a还是10,因为b复制了a的值。
引用类型:存储在堆上,栈上只存堆的内存地址(引用),赋值时复制的是地址,比如string、class、interface、数组。举例:string[]arr1={1,2};string[]arr2=arr1;arr2[0]=3;此时arr1[0]也变成3,因为两者指向同一个堆地址。
补充:string看似值类型,实际是引用类型,只是它是不可变的,修改时会创建新对象,所以表现得像值类型。
2.什么是装箱和拆箱?会有什么性能影响?
答案:装箱是值类型转换为引用类型(比如int转object),拆箱是引用类型转换回值类型(比如object转int)。
过程:装箱时,会在堆上创建一个新的引用对象,将值类型的数据复制到堆中;拆箱时,先检查引用对象是否是对应值类型的装箱对象,再将堆中的数据复制回栈。
性能影响:装箱和拆箱会
原创力文档

文档评论(0)