DoNet面试题面试相关常见题答案

上传人:鲁** 文档编号:508448623 上传时间:2022-10-20 格式:DOC 页数:9 大小:102KB
返回 下载 相关 举报
DoNet面试题面试相关常见题答案_第1页
第1页 / 共9页
DoNet面试题面试相关常见题答案_第2页
第2页 / 共9页
DoNet面试题面试相关常见题答案_第3页
第3页 / 共9页
DoNet面试题面试相关常见题答案_第4页
第4页 / 共9页
DoNet面试题面试相关常见题答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《DoNet面试题面试相关常见题答案》由会员分享,可在线阅读,更多相关《DoNet面试题面试相关常见题答案(9页珍藏版)》请在金锄头文库上搜索。

1、1. 什么是 CTS、CLS 和 CLR ?答:微软公司向 ECMA提交了一份语言和数据格式规范叫“公共语言基础(CLI ) ”。CTS是通用类型系统(Common Type System),它定义了一个能够在 CLR上运行的语言规范。 CLS是公共语言规范,是 CTS的一个子集,它定义了在.net平台上运行的程序的语言所需 符合的最小规范。CLR的全称是公共语言运行时 (Common Lan guage Run Time),包含运行.net 程序的引擎和一些符合公共语言基础结构的类库的集合。CLR是CLI的一个实现。2. .Net程序被编译成什么形式的代码?答:.NET程序在第一次编译后,形

2、成CLR头、元数据和中间代码。 在实施运行或者部署时,将经过第二次编译,编译的结果是在CLR中可执行的机器代码。3. 什么是受托管的代码?(华为公司2006年面试题)答:公共语言运行库 CLR包含运行.NET程序的引擎和符合公共语言基础结构的类库的集 合,.NET程序都基于CLR的类库来实现,并运行在 CLR提供的运行引擎之上。4. 什么是应用程序域?它和进程有什么区别?(HP公司2007年面试题)答:应用程序域是 CLR中提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,功能 类似于操作系统的进程。进程是操作系统通过在应用程序自己的进程中运行各个应用程序来 防止应用程序互相影响。如果一个应

3、用程序由于某种原因失败,则只影响该进程。5. .net中所有内建类型的基类是什么?答:System.Object6. System.Object中包含哪些方法,哪些是虚方法?答:包含以下方法方法说明vitual bool Equals(object obj)确定两个对象是否相等(虚方法)virtual int GetHashCode()返回this对象的一个哈希码,如果该对象被一个集合当作键值使用,则这个 值将会起作用(虚方法)Type GetType()返回当前对象的类型。类型由一个继承自System.Type的实例对象表示virtual string ToString()返回一个可以代码当

4、前对象的字符串,在System.Object中该方法将返回当前对象类型的完整名称(虚方法)bool Equals(object A, object B)确定两个对象是否相等(公共静态方法)bool ReferenceEquals(object A,object B)比较两个对象的引用是否相等。(公共静态方法)object MemberwiseClone()浅复制当前对象实例,并返回复制对象的引用(受保护实例方法)Finalize.NET的析构方法7. 值类型和引用类型的区别。(微软公司2006年面试题)答:所有继承自 System.ValueType(System.ValueType 继承自

5、System.Object)的类型都是值 类型,而其他类型都是引用类型。值类型的赋值会产生一个新的数据副本,所以每个值类型都有一个数据副本,而引用类型的赋值则是赋值引用。值类型的对象分配在堆栈上,而引用类型的对象分配在堆上。当比较两个值类型时,进行的是内容比较,而比较两个引用类型时, 进行的是引用比较。8. 简述装箱和拆箱的原理。答:装箱和拆箱本质是值类型在转换到 System.Object 时引发的堆栈和堆的一系列移动操作。 装箱时值类型从堆栈被复制到堆上, 而拆箱时从堆上复制到堆栈上。 装箱和拆箱对性能有比 较大的影响,应该避免任何没有必要的装箱和拆箱操作。9. struct和class的

6、区别,struct适用些场合?答:结构(struct)是值类型而类(class)是引用类型。结构不具备继承的特性,程序员不 能定义一个继承自其他结构或类的结构。结构中虽然可以重写定义在System.Object 中的虚方法, 但程序员不能定义新的虚方法和抽象方法。 结构不能拥有无参数的构造方法, 也不能 为成员变量定义初始值。结构作为一个微型的值类型的“类” ,常用于存储数据的集合,但 那些涉及复杂操作的类型应该被设计成类,而不是结构。10. C#中方法的参数可以有哪几种传递方式?答:一共有三个可选关键字可以修饰方法的参数:ref、out 和 params。 ref 和 out 都实现了参数的

7、引用传递,区别在于ref要求参数在传入前被初始化,而out要求参数在方法返回前被初始化,params实现了参数数目可变的方法。11. C#中支持哪几种可访问性级别?答:5种。private (私有)、protected (受保护)、internal (内部)、protected internal 和 public (公开)。12. 执行 string abc = aaa + bbb+ccc”共分配了多少内存?答:在堆栈上分配了一个字符串引用,并在托管堆中分配了一块用于存储” aaabbbcc(这字符串对象。13. .NET中的GC (垃圾回收)机制答:垃圾回收是指收集释放托管堆上不再被使用的对

8、象内存。 其过程基本包含: 通过算法找 到不再被使用的对象、 移动对象使所有仍被使用的对象紧靠托管堆的一边和调整各个状态变 量。垃圾回收的运行成本较高,对性能的影响较大。程序员在编写.NET 代码时,应该避免不必要的内存分配,尽量减少或避免使用 GC.Collect 来执行垃圾回收。14. 简述C#中重写、重载、和隐藏的概念。答:重写是指用 Override 关键字重新实现基类中的虚方法,在运行的过程中,无论通过哪 个类型的引用,真正对象类型的方法将被调用。隐藏是指用new 关键字重新实现基类中的方法,在运行的过程中通过引用的类型判断应该调用哪个类型的方法。重载是指多个方法共享同一个名称并且拥

9、有相同的返回值,但是却可以拥有不同的参数列表。15. StringBuilder 类型有何作用答: StringBuilder 采用构造器设计模式的思想高效地构造一个字符串对象,在构造过程中StringBuilder 可以有效避免临时字符串对象的生成。一旦 StringBuilder 的 ToString 方法被调 用后, 最终的字符串就被生成, 而随后的操作将导致一个新的字符串对象的分配。 因为字符 串对象的不可修改特性, StringBuilder 还经常被用来和非托管代码交互。16.简述BASE64编码的作用以及 C#中对其的支持答:BASE64编码是一种用于混淆明码的编码方式,其算法是

10、把原先的 8位字节数组顺序分配到新的6位字节数组中,再在每个字节的高 2位填充0来组成新的8位字节数组。在.NET 中 Convert 类可以用来进行 BASE64 字符串和 8 位字节数组之间的转换。17. int是引用类型还是值类型答:数组类型是一族类型, 都继承自 System.Array ,而 System.Array 又继承自 System.Object , 所有的数组类型都是引用类型。18. string str=null 与 string= ”有什么区别?(微软公司2006 年面试题)答:string str= null未分配内存空间,str= ”分配了内存空间,并保存了一个空字

11、符。19. 请解释ASP.net以什么形式运行答:ASP.net是作为一个ISAPI过滤器程序来运行的,同时它是一个.NET CLR的宿主,从而实现了运行托管的服务器代码的功能。20. GET 请求和 POST 请求有何区别答: HTTP 协议中有两种常用的请求: GET 和 POST。 GET 请求把表单的数据显式地放在 URI 中 ,并且对长度和数据值编码有所限制。 POST 请求把表单数据放在 HTTP 请求体中, 并且没有长度的限制。21. 介绍ASP.net的页面生存周期答:ASP .n et 页面的生存周期包含了 PreI nit、In it、Ini tComplete、LoadS

12、tate、ProcessPostData PreLoad、Load、ProcessPostData (第二次)、ChangedEvents、PostBackEvent、LoadComplete、 PreRender、 PreRenderComplete、 SaveState、 SaveStateComplete、 Render、 Unload 这些步骤。22. 什么是静态页面,什么是动态页面答:静态网页是指不需要服务器代码额外处理, 直接可以呈现给使用者的页面, 常见的静态 页面是 html 文件。相对的,需要服务器代码针对每个请求做处理的页面称为动态页面,ASP .net中常见的动态页面是

13、aspx文件。23. 请简述 ViewState 的功能和实现机制答: ViewState 用来存储页面范围内的数据,以保证用户在离开页面之前数据的持续性。实 现上来说, ViewState 被保存在页面内的一个隐藏控件内,并且在提交到服务器后被提取使 用。24. Session有哪几种存储方式,之间有何区别,如何进行设置答:Session数据一共有四种存储方式,分别为存储在IIS进程中、状态服务器中、SQL Server数据库中和自定义程序中。除了必要的服务外(如SQL Server服务器),还需要配置站点的Web.config 文件进行设置。25. 如何嵌套使用 GridView 控件答:

14、 GridView 支持模式列。程序员可以自定义模板列内的控件和排版样式,只要在一个模 板列内再放入一个 GridView 控件,就可以实现 GridView 的嵌套使用。26. 列举几种实现页面中转的方法,并说明其实现机制答:ASP.net开发中,常用的转跳技术包含:Response.Redirect、Server.Transfer、使用脚本进行转跳和直接使用超链接等。27. 请解释 v%# Eval( Source” %答:Eval表达式实现了数据绑定的功能,在之后其表达式书写更加简洁,通过从绑定数据源取得需要绑定数据项,并进行数据绑定。28. OjbectDataSource 控件有何作

15、用答:ObjectDataSource扮演了双向数据绑定中传递元素的角色,在分层 BS系统中通常作为 自定义业务逻辑层和页面显示层的中间衔接。29. 介绍ASP.net验证控件的功能和使用方法答: ASP.net提供了 6种和验证相关的控件,分别是:Requried Validator(必填验证) CompareValidator (比较验证)、RangeValidator (范围验证)、RegularExpression Validator (正则表达 式验证)、CustomValidator (自定义验证)和 ValidationSummary (验证汇总摘要)。各控件分 别设置必要的属性值及事件来达到验证目的。30. 如何防止SQL注入式攻击答:程序员在设计时需要考虑到注入式攻击的问题,使用参数化查询来传递用户输入值,避免直接使用用户输入拼接SQL语句,适当使用加密数据进行存储,并且在适当的场合使用存储过程。31. 什么是关系型数据库答:关系型数据库是支持采用了关系模型的数据库,简单来说,关系模型就是二维表模型。 相对其他模型来说,关系型数据库具有理解更容易、使用更方便、维护更简单等优点。32. ADO.net支持哪几种数据源答:支持四个类别的数据源,分别是:SQL Se

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号