DoNet面试题面试相关常见题答案_第1页
DoNet面试题面试相关常见题答案_第2页
DoNet面试题面试相关常见题答案_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、I

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

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

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

15、OjbectDataSource 控件有何作用答:ObjectDataSource扮演了双向数据绑定中传递元素的角色,在分层 BS系统中通常作为 自定义业务逻辑层和页面显示层的中间衔接。29. 介绍ASP.net验证控件的功能和使用方法答: ASP.net提供了 6种和验证相关的控件,分别是:Requried Validator(必填验证)> CompareValidator (比较验证)、RangeValidator (范围验证)、RegularExpression Validator (正则表达 式验证)、CustomValidator (自定义验证)和 ValidationSumm

16、ary (验证汇总摘要)。各控件分 别设置必要的属性值及事件来达到验证目的。30. 如何防止SQL注入式攻击答:程序员在设计时需要考虑到注入式攻击的问题,使用参数化查询来传递用户输入值,避免直接使用用户输入拼接SQL语句,适当使用加密数据进行存储,并且在适当的场合使用存储过程。31. 什么是关系型数据库答:关系型数据库是支持采用了关系模型的数据库,简单来说,关系模型就是二维表模型。 相对其他模型来说,关系型数据库具有理解更容易、使用更方便、维护更简单等优点。32. ADO.net支持哪几种数据源答:支持四个类别的数据源,分别是:SQL Server数据库、Oracle数据库、OleDB提供商和

17、ODBC提供商。33. 一个连接字符串可以包含哪些属性答:连接字符串包含了丰富的可选属性,在进行数据库操作时,程序员应该对数据库连接字符串进行再三斟酌,不同的设置将适合不同的实际情况。详细的连接字符串属性见列表:关键字默认值说明Application NameN/A应用程序名称,或者“ .Net SqlClient Data Provider "(如果不提供应用程 序的名称)AttachDbFileNameN/A主数据库文件的名称,包含可连接数据库的完整路径名。该路径可以是 绝对路径,也可以是相对路径,这取决于是否使用DataDirectory替换字符串。如果使用,则对应的数据库文件

18、必须存在于替换字符串指向的目 录的子目录中。注意:远程服务器、HTTP及UNC路径名不受支持。必须按照如下方式使用关键字”DataBase” (或其别名之一)指定数据库名称:AttachDbFileName=|DataDirectory|DB.mdf;integrated security=true;database=YourDatabase;Connect TimeoutConnection Timeout15在终止尝试并产生错误之前,等待与服务器的连接的时间长度(单位为 秒)Data SourceServerAddressAddrNetwork AddressN/A要连接的SQL Serv

19、er实例的名称或网络地址。可以在服务器名称之后指 定端口号:Server=tcp:ServerName,portnumber。指定本地实例时,始终使 用(local)。若要强制使用某个协议,请添加下列前缀之一:np:(local)、tcp:(local)或 Ipc:(local)Initial CatalogDataBaseN/A数据库名称Integrated SecurityTrusted_Connectionfalse'当为false时,在连接中指定用户ID和密码。当为true时,将使用当前 的Windows账户凭据进行身份验证。可识别的值为true、false、yes、no以及与

20、true等同的SSPIPacked Size8192用来与SQL Server实例通信的网络数据包大小,以字节为单位Password 或 pwdN/ASQL Server账户登录的密码。User ID 或 uidN/ASQL Server登录账户User Instancefalse'一个值,用于指示是否将连接从默认的SQL Server速成版实例重定向到调用方账户下运行时启动的实例Workstation ID本地计 算机名 称连接到SQL Server的工作站的名称34. CommandBehavior.CloseConnection 有何作用答:CommandBehavior.Clo

21、seConnection解决了流读取数据模式下,数据库连接不能有效关 闭的情况。当某个 XXXDataReader 对象在生成时使用了 CommandBehavior.CloseConnection, 那数据库连接在 XXXDataReader对象关闭时自动关闭。35. ADO.net支持哪两种方式来访问数据库答:ADO.net 共支持两种数据库访问方式,分别是连接式和断开式。连接式的较适合大数据量并且不能准确预测需要读取多少记录的情况;断开式的更适合进行小数据量的读取操 作。36.请解释SqlDataAdapter的基本工作机制答:SqlDataAdapter在数据库中充当了中间适配的角色,

22、它组织起数据缓存对数据库的所有操作,使用内部四个SqlCommand类型的成员进行检索和更新操作, 分别是SelectCommand、 InsertCommand、 UpdateCommand 禾口 DeleteCommand 。 SelectCommand 成员 可以在 SqlDataAdapter构造时被构造,程序员可以手动地设置这四个成员来完全地控制 SqlDataAdapter 的行为。37.什么是XML答:XML是可扩展性标记语言,一种简单的数据存储语言,使用一系列简单的标记描述数 据,而这些标记可以用方便的方式建立,XML相对简单且易于掌握和使用。38.简述XML的常用领域及其优势

23、 答: XML 具有内容和结构分享、互操作性强、规范统一、支持多种编码格式等特点,已经被应用在数据交换、Web Service、电子商务、配置文件等多个领域之中。39. XML 中的 <!CDATA> 标签的作用答: CDATA 标签中的内容将被 XML 解析器忽略,通常会在其中存放大量带有“<”或“>”等特殊字符的数据内容。需要注意的是,不能使用 CDATA 标签内的字符串带有“ ”,否则 XML 解析器会将其当成标签的结束,从而使其后面的内容引发解析错误。40. XML 规范是否允许空的属性值 答:可以,但双引号和等号不能省略。41. XML 中如何处理诸如“ &l

24、t; ”的字符答:“<”字符在 XML 文档中具有二义性,需要被替换成“ &lt; ”。除此之外,需要替换的还 有:”&”替换为”&amp; ”替换为”&gt; ”、” ”替换为”&quot; ”等。42. .NET 中操作 XML 的基本类有哪些答: .NET 中支持 XML 文档操作的类型都定义在 System.XML 命名空间之下。 直接操作 XML 的类型基本可以分为两类,一类是对 XML 的读写类型,另一类是 DOM 的支持类型。这两 种类型的取舍要视系统的实际情况而定。43. 请简述 SOAP 协议答: SOAP 的全称是简单对象访问协

25、议 ( Simple Object Access Protocol )以 XML 形式提供了 一个简单、 轻量的用于在分散和分布环境中交换结构化和类型信息的机制。SOAP 协议定义了交互的方式,但并未规定时限协议的环境和技术细节。44. GridView.DataSource 可以连接什么数据源答:实现了 System.Collection.IEnumerable 接口的任何数据源,如: DataView 、 DataTable、ArrayList 、 HashTable 等。45. 通过超链接怎样传递中文参数答:传递时对中文或特定字符进行地址栏编码,如Server.UrlEncode(中文”

26、,获取地址栏参数时,相应的进行 Server.UrlDecode()解码。46. 请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty答: for (int i = 0; i < this.Controls.Count; i+)foreach (System.Web.UI.Control ctrl in this.Controlsi.Controls)if (ctrl is TextBox)(ctrl as TextBox).Text = String.Empty;47. 面向对象的语言具有封装 性、 继承 性、 多态 性48. 能用foreach遍历访问的对

27、象需要实现lEnumerable 接口或声明 GetEnumerator 方法的类型49. 在A中所有的自定义用户控件都必须继承自50. 在 ADO.NET 中,对于 Command 对象的 ExecuteNonQuery()方法和 ExecuteReader() 方法,下面叙述错误的是(C)Oa) insert、update、delete 等操作的 Sql 语句主要用 ExecuteNonQuery()方法来执行;b) ExecuteNonQuery()方法返回执行 Sql语句所影响的行数。c) Select操作的Sql语句只能由ExecuteReader()方法来执行;d) Execute

28、Reader()方法返回一个 DataReder 对象;51. 下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。a) SqlConnection con1 = new Connection( “ DStaurce = localhost; Integrated Security =SSPI; Initial Catalog = myDB” );b) SqlC onnection con1 = new SqlC onnection(ta SourdDa= localhost; I ntegrated Security =SSPI; Initial Catalog = myDB” );c) SqlC onnection con1 = new SqlC onnection( Data Source = localhost; I ntegrated Security = SSPI; I nitial Catalog = myDB);d) SqlConn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论