1 / 22
文档名称:

C#面试题及答案.doc

格式:doc   大小:161KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C#面试题及答案.doc

上传人:小健 2021/7/2 文件大小:161 KB

下载得到文件列表

C#面试题及答案.doc

文档介绍

文档介绍:C#面试题
1. string str; string str=〃〃; string str=null;三者之间有什么区别,最好能用图形表示。
答:区别如下:
(1) string str;如果str是局部变量,编译时会忽略该变量,所以不会分配任何内存空间, 如下图。如果是类的成员变量,会被赋null空值,所以等于str=null;
堆区
栈区
string str=〃〃;堆和栈中都分配了空间,栈中保存堆中的地址,堆中为空字符串。
HE 堆区
str
市白帷地址
>
金字
(3) string str=null;H在栈中分配了指针,但该指针为空(指针的值为0)
懵区 堆区
•tr
string和StringBuilder有什么区别,在什么情况下使用StringBuilder?
答:区别如下:
string是一个不可变的字符串,如以下语句中
sring a=〃abcd”;
a="eftg〃;
语句1中a代表了栈区的指针,指向堆区的空间,堆区存放的是〃abcd〃这个字符串, string的不可变性体现在堆区中的值是不可变的,也就是说不能把堆区中的"abed"改为别 的值。在第二条语句中给a重新赋值,实质是重新在堆区分配新的内存,其中的值为新的 值〃eftg〃,并将a指向这个新的地址,也就是说第一条语句的a和第二条语句的a其实是不 同的地址。
在做大量的类似于a+=〃abcdd〃;这样的操作时string会频繁分配内存,因此速度慢。
StringBulider 通过 StringBuilder str=new StringBuilder("abcd〃);这种语句初始化,并且会 预留一些空间给将来追加字符串时使用。上面的语句用StringBuilder替换如下:
StringBuilder a=new StringBuilder("abcd");
("eftg");
两行代码中的a在栈区的值也保持了不变(也就是说堆区的地址相同),而且在预留空 间足够的情况下也不会重新分配内存,因此速度会快很多,这是一种用空间换时间的用法。
StringBuilder 一般在频繁改变字符串内容时使用。
GC是什么?为什么要有GC?
答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。 当引用类型在栈区的所有指针释放造成没有任何指针指向堆区的地址时,堆区的内存会被回 收。
public void Test()
(
object a=new object();
)
Test();
当调用Test函数进入Test函数内部时,内存如下:
当函数运行完成后,变量a的作用域已过,a因为位于栈区,会被自动弹出,此时内存 如下:
此时a已不存在,但堆区分配的内存还被占用,该内存没有任何指针指向它,这就是内 存中的垃圾。当GC启动时,会对堆区进行扫描,扫描到该内存区域时会将其销毁。
const和readonly有什么区别?
答:const可以用于类的成员常量和局部常量,必须在声明时赋值,之后不可以对常量 进行赋值。而readonly H能用于类的成员变量不能用于局部变量,在声明时可以不赋值, 除了在构造函数中可以再次赋值外,其它的地方和const 一样也不能赋值。
接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?答
答:区别如下
抽象类可以有抽象成员(无具体实现),也可以有非抽象成员(有具体实现); 接口只有抽象成员。
一个类不能同时继承多个抽象类,一个类可以同时实现多个接口。
如果多个子类中有很多代码是重复的,这时采用抽象类,因为可以将这些代码放到抽象
类的非抽象方法中,这样可以达到代码复用。当实现多个接口时因为抽象类不支持,只 能使用接口。
6. struct和class有什么区别
答:两者都可以有成员变量、属性、索引器、事件、函数、构造函数,主要区别如下:
区别点
结构

类型
值类型
引用类型
成员变量
在声明时不能赋值
可以赋值也可以不赋值
构造函数
可以不写,系统提供默认构造函 数,默认构造函数中会将所有成员 值设为0,如果写了构造函数则构 造函数必须有参数,且在构造函数 中必须为每一个成员赋值。
可以不写,系统提供默认构造函 数,写了也没有结构中的限制。
析构函数
不能有析构函数
可以有析构函数
继承性
自定义的结构不能从类继承,但可 以实现接口,结构都是密封 (sealed),不能从结构继承
类没有限制
try后面一个finally, try中有一个return,那么finally中的代码会不会运行?如果运行, 是在retu

最近更新

河北省石家庄市第四十中学2024届中考数学模拟.. 21页

沪科版高中生物必修一试卷和答案 25页

能源规划研究报告 6页

结肠癌病例对照研究报告 7页

策略是实现目标的方案的 6页

离线包方案介绍 7页

机械工程师助理笔试题 7页

数学基础模块(上册)第三章函数 24页

年小学六年级数学下册第三单元练习试题(附答案.. 15页

山东省潍坊市2024-2023学年高三上学期期末地理.. 15页

公开课课件—《战后资本主义经济的调整》 60页

四年级上册数学试题-期中试卷 人教新课标(含答.. 17页

卫生院放射科工作计划5篇 13页

北京市密云区2023-2024学年八年级上学期期末考.. 12页

全国2024年10月自考[00465]《心理卫生与心理辅.. 4页

2024年防溺水安全教育主题的征文(通用6篇) 7页

临沂市河东区人民医院招聘试题及解析 3页

中文版慢性HBV感染者生活质量量表的信效度及敏.. 7页

七年级语文下册名著导读《骆驼祥子》提升练习.. 20页

【北师大新版】2024-2023学年七年级下册数学期.. 16页

2024年销售述职报告-销售述职报告范文 述职报.. 5页

肇庆裹蒸粽行业报告 28页

云南省市政基础设施工程施工质量验收统一规程.. 82页

绘画心理学 2页

2021年歌颂祖国的三句半台词 8页

机械设备投标书范本1 37页

少先队六知六会 1页

景观工程新材料在当代景观中的应用 6页

认罪认罚从宽制度的理解与适用课件 25页

基于PLC电梯控制系统设计 35页