研发部面试题 Written by Dev. Group.
6、典型的值类型为:struct,enum以及大量的内置值类型;而能称为类的都可以说是引用类型。
7、值类型的内存不由GC(垃圾回收,Gabage Collection)控制,作用域结束时,值类型会自行释放,减少了托管堆的压力,因此具有性能上的优势。例如,通常struct比class更高效;而引用类型的内存回收,由GC来完成,微软甚至建议用户最好不要自行释放内存。
8、值类型是密封的(sealed),因此值类型不能作为其他任何类型的基类,但是可以单继承或者多继承接口;而引用类型一般都有继承性。
9、值类型不具有多态性;而引用类型有多态性。
10、值类型变量不可为null值,值类型都会自行初始化为0值;而引用类型变量默认情况下,创建为null值,表示没有指向任何托管堆的引用地址。对值为null的引用类型的任何操作,都会抛出NullReferenceException异常。
11、值类型有两种状态:装箱和未装箱,运行库提供了所有值类型的已装箱形式;而引用类型通常只有一种形式:装箱。
21. Override与重载有什么区别?
Override涉及到继承,而重载则是方法的名称相同,而签名不同
重写(override)指用override关键字重新实现基类中的虚方法,在运行过程中,无论通过哪个类型的引用,真正对象类型的方法将被调用。
重载(overload)指多个方法共享一个名字并且拥有相同的返回值,但是拥有不同的参数。 隐藏(new)指用new关键字重新实现基类中的方法,在运行的过程中通过引用的类型判断应该调用哪个类型的方法。
22. 怎样理解静态变量? 类的静态变量只维护一份
C#中的委托是什么?
答:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值。
委托是函数的封装,代表一\类\函数,它们都符合一定的签名:拥有相同的参数列表、返回值类型。同时,委托也可以看成是对函数的抽象,是函数的\类\。此时委托的实例代表一个具体的函数
三、ASP.NET & ADO.NET部分*
23. 您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。
所有的用户都存在于AllWin这个域中。 第 5 页共9 页
研发部面试题 Written by Dev. Group.
您想要使用下列认证规则来配置这个应用程序: ? 匿名用户不允许访问这个应用程序。
? 所有雇员除了Tess和King都允许访问这个应用程序。
请问您应该使用以下哪一个代码段来配置这个应用程序?(B ) A.
24. 您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。
您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C )
A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。 B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。 C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。 D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。
25. 您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了
50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)( AD )
A.在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。
B.在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。
C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。 D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。 第 6 页共9 页
研发部面试题 Written by Dev. Group.
E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET 代码错误。 F. 在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET HTTP错误。
26. 您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写
一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( D )
A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test; Integrated Security=SSPI”
B. “Server= AllWin;Data Source=PubBase;Database=Test; Integrated Security= SSPI”
C. “Data Source= AllWin \\PubBase;Initial Category=PubBase; Integrated Security= SSPI”
D. “Data Source= AllWin \\ PubBase;Database=Test; Integrated Security= SSPI”
27. 您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个
Xml Web Service。这个Xml Web Service将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个Xml Web Service?(B ) A.在“引用”对话框的.Net标签中选择System.Web.Services.dll。 B.在“Web引用”对话框中输入这个XML Web service的地址。
C.在您的Global.asax.cs中添加一条using语句并指定这个XML Web service的地址。 D.在您的Global.asax.cs中写一个事件处理器导入这个Xml Web Service相应的.wsdl和.disco文件。
28. 您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据
被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么做? (B )
A. 将SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。
B. 创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。
C. 将DataGrid控件的AllowSorting属性设置为True,并将DataGridColumn的SortExpression属性设置为 “ProductName DESC”.以显示ProductName。然后将这个DataTable对象绑定到DataGrid控件。
D. 将DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。然后将这个DataTable对象绑定到DataGrid控件。
29. 用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样
分层? 多层架构问题 第 7 页共9 页
研发部面试题 Written by Dev. Group.
30. ASP.NET 页面之间传递值的几种方式?
有 querystring,cookie,session,server.transfer,application 5种方式 【扩展】
1.使用QueryString方式(或称url传值、Response.Redirect传值),这是最简单的方式,因为传递的值在浏览器的url中会显示出来,所以用来传递没有安全要求的值。 发送页面代码:
Response.Redirect(\接收页面代码:
if(Request.QueryString[\ {
strUserName = Request.QueryString[\ }
2.使用cookie方式,cookie由服务器创建,但是保存在客户端 发送页面代码:
HttpCookie userName = new HttpCookie(\ userName.Value = this.txtUserName.Text.Trim(); Response.Cookies.Add(userName); Response.Redirect(\接收页面代码:
if (Request.Cookies[\ {
strUserName = Request.Cookies[\ }
3.使用Session变量,session在用户向服务器发出首次请求时被创建,在服务器端,在用户关闭浏览器或异常发生时终止(还有别的session过期情况)。 发送页面代码:
Session[\ext.trim(); Response.Redirect(\接收页面代码:
if (Session[\ {
strUserName = Session[\ }
4.使用Application变量 发送页面代码:
Application[\Response.Redirect(\接收页面代码: 第 8 页共9 页
研发部面试题 Written by Dev. Group.
if (Application[\ {
strUserName = Application[\ }
5.使用Server.Transfer方式(或称为HttpContext方式),要传递的变量可以通过属性或方法来获得,使用属性比较容易一些。 发送页面制作一个属性: public string GetName {
get { return this.txtUserName.Text.Trim(); } 4 }
发送页面代码:
1 Server.Transfer(\接收页面代码:
w = (WebForm4)Context.Handler; strUserName = w.GetName;
31. 微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作
用?
讲述的越多、越清楚越好
32. 请列举一些您用到过的设计模式以及在什么情况下使用该模式?
比较基础的单例模式、命令模式、工厂模式、策略模式应该讲清楚
第 9 页共9 页
相关推荐: