NET面试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

附件2常见.NET面试问题集锦1.您需要创建一个APS.NET应用程序,公司考虑使用Windows身份认证,所有的用户都存在于AllWin这个域中,您想要使用下列认证规则来配置这个应用程序:匿名用户不允许访问这个应用程序。所有雇员除了Tess和King都允许访问这个应用程序。请问您应该使用哪一个代码段来配置这个应用程序?authorizationdenyusers=?denyusers=allwin\tess,allwin\king/authorization2.您要创建APS.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?在配置文件web.config中添加如下配置节:customErrorsmode=RemoteOnlydefaultRedirect=GenericErrorPage.htmerrorstatusCode=403redirect=NoAccess.htm/errorstatudCode=404redirect=FileNotFound.htm/3.您的公司有一个DBServer,名为AllWin,其上装了MSSQLSERVER2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQLSERVER中的一个名为PubBase实例的Test库。请问,应该选择哪一个字符串?Server=AllWin\PubBase;Database=Test;IntegratedSecurity=SSPI4.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个XmlWebService。这个XmlWebService将返回一个包含了公司雇员列表的DataSet对象。请问您如何在这个程序中使用这个XmlWebService?在“Web引用”对话框中输入这个XMLWebService的地址。5.在下面的例子里UsingSystem;ClassA{PublicA(){PrintFields();}PublicvirtualvoidPrintFields(){}}ClassB:A{intx=1;inty;publicB(){y=-1;}PublicoverridevoidPrintFields(){Console.WriteLine(x={0},y={1},x,y);}}当使用newB()创建B的实例时,产生什么输出?X=1,Y=06.下面的例子中usingSystem;classA{publicstaticintX;staticA(){X=B.Y+1;}}classB{publicstaticintY=A.X+1;staticB(){}staticvoidMain(){Console.WriteLine(X={0},Y={1},A.X,B.Y);}}产生的输出结果是什么?x=1,y=27.new有几种用法第一种:newClass();第二种:覆盖方法publicnewXXXX(){}第三种:new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数8.如何把一个array复制到arrayList里?调用Clone()方法9.DataGrid.DataSource可以连接什么数据源?IList接口,包括一维数组。IListSource接口,例如,DataTable和DataSet类。IBindingList接口,例如,BindingList类。IBindingListView接口,例如,BindingSource类。10.概述反射和序列化反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。11.概述o/rmapping的原理。主要是利用反射等技术手段,自动生成SQL,将业务对象持久化到关系数据库中。12.类成员有()种可访问形式。实例成员通过类的实例访问,静态成员通过类访问。13.用sealed修饰的类有什么特点。sealed修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。密封类不能同时为抽象类。14.执行下面代码后:StringstrTemp=abcdefg某某某;IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length;Intj=strTemp.Length;问:i=(14);j=(11)i=(14);j=(11)中文两个字节15.C#中,stringstr=null与stringstr=,请尽量用文字说明区别。(要点:说明详细的内存空间分配)前者只声明变量不分配内存;后者指向一个值为空字符串的实例,分配内存空间。16.详述.NET里class和struct的异同。类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“堆栈上”或“内联上”。17.概述.NET里对remoting和webservice两项技术的理解和实际中的应用。都可以实现程序逻辑的远程调用,从而创建分布式应用,但remoing接口只能在.net平台上实现。remoting支持tcp/ip协议、二进制序列化、事件,webservice都不支持。18.什么是中的用户控件?用户控件就是扩展名为.ascx的特殊页面,它不能象.aspx页面一样直接访问,用户控件用于在同一应用程序中实现功能和外观的重用。19.列举一下你所了解的XML技术及其应用。XML用以在异构系统间传递或保存数据,比如:配置文件、RSS、WEBSERVICE。20.值类型和引用类型的区别?写出C#的样例代码。两者的主要区别在于:值类型变量间赋值是值拷贝,引用类型变量间赋值是地址拷贝。代码略。21.ADO.net中常用的对象有哪些?分别描述一下。ConnectionCommandDataReaderDataAdapterDataSetDataTableDataView等等。描述略。22.如何解释委托?事件是不是一种委托?(1)相当于C和C++的函数指针,委托使得方法可以做为参数传递,并且可以提高程序的可拓展性;msdn2005中,委托具有以下特点:委托类似于C++函数指针,但它是类型安全的。委托允许将方法作为参数进行传递。委托可以链接在一起。例如,可以对一个事件调用多个方法。方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。C#2.0版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。(2)事件是一种特殊的委托。23.UDP连接和TCP连接的异同。都可以实现远程通信,主要区别在于TCP需要保持连接而UDP不需要,因此UDP具有更高的效率和更少的资源占用,而TCP传输数据更加可靠。24.什么是code-Behind技术。代码后置,即HTML代码与C#代码写在不同的文件中,使得代码更整洁和便于维护。25..net中读写XML的类都归属于哪些命名空间?System.Xml。26.什么是SOAP,有哪些应用?SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象和代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:。27.如何部署一个ASP.net页面。直接复制文件、复制网站、发布网站。28.简述private、protected、public、internal修饰符的访问权限。private:私有成员,在类的内部才可以访问。protected:保护成员,该类内部和继承类中可以访问。public:公共成员,完全公开,没有访问限制。internal:在同一命名空间内可以访问。29.列举ASP.NET页面之间传递值的几种方式。(1)使用QueryString;(2)使用Form提交,如:Server.Transfer方法;(3)使用Application/Session/Cookie等系统对象。30.一列数的规则如下:1、1、2、3、5、8、13、21、34……求第30位数是多少,用递归算法实现。PublicclassMainClass{PublicstaticvoidMain(){Console.WriteLine(Foo(30));}PublicstaticintFoo(inti){if(i==1||i==2)return1;returnFoo(i-1)+Foo(i-2);}}31.override与重载的区别。override与重载的区别。重载是方法的名称相同,参数个数或参数类型不同,进行多次重载以适应不用的需要Override是对基类中成员的重写,实现多态。32.如果一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?公开的静态变量、基于文件、基于数据库。33.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?foreach(Controlcontrolinthis.form1.Controls){If(controlisTextBox)((TextBox)control).Text=string.Empty;}34.请编程实现一个冒泡排序算法?int[]array=newint[*];inttemp=0;for(inti=0;iarray.length;i++){for(intj=array.length-1;j=1;j--){if(array[j+1]array[j]){temp=array[j+1];array[j+1]=array[j];array[j]=temp;}}}35.描述一下C#中索引器的实现过程,是否只能根据数字索引?ArrayListal=newArrayList();Publicobjectthis[intindex]{Get{returnal[indext];}Set{al[indext]=value;}}不是,可以用任意类型。36.用.net做B/S结构的系统,您是用几层结构来开发的,每一层之间的关系以及为什么要这样分层?一般分为3层:数据访问层,业务层,表现层。数据访问层实现对数据库的数据操作。业务逻辑层为业务逻辑的具体实现。表现层实现与用户之间的交互,负责数据的输入与输出。关系:业务逻辑层调用数据访问层;表现层调用业务逻辑层。优点:使软件具有良好的可扩展性和可维护性;分工明确,易于团队开发,降低了开发难度。37.在下面的例子里usingSystem;classA{PublicA(){PrintFields();}PublicvirtualvoidPrintFields(){}classB{intx=1;inty;publicB(){y=-1;}PublicoverridevoidPrintFields(){Console.WriteLine(“x={0},y={1}”,x,y);}}当使用NewB()创建B的实列时,产生什么输出?X=1,Y=0;x=1,y=-1;38.什么叫做应用程序域?应

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功