.Net面试题大全(个人整理)

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

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

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

资源描述

第1页/共172.列举ASP.NET页面之间传递值的几种方式。答:QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。Session变量想必这个肯定是大家使用中最常见的用法了,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。Cookie对象变量这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。Server.Transfer方法这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。3.一列数的规则如下:1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。答:publicstaticintCalculate(intx){intretInt=1;if(x2){returnCalculate(x-2)+Calculate(x-1);}elsereturnretInt;}4.C#中的委托是什么?事件是不是一种委托?答:委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。委托具有以下特点:委托类似于C++函数指针,但它们是类型安全的。委托允许将方法作为参数进行传递。委托可用于定义回调方法。委托可以链接在一起;例如,可以对一个事件调用多个方法。方法不必与委托签名完全匹配。事件是一种特殊的委托。5.override与重载的区别答:Override:要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,重写的基方法必须与override方法具有相同的签名。第2页/共17方法重载:一个类中可以有一个以上的方法拥有相同的名称。但必须有不相同的签名。6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?答:QueryString、Server.Transfer方法。7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?答:foreach(Controlcontrolinthis.Controls){if(controlisTextBox){TextBoxtb=(TextBox)control;tb.Text=String.Empty;}}8.请编程实现一个冒泡排序算法?答://冒泡排序publicstaticvoidMaoPaoSort(refint[]arrays){if(arrays!=null&&arrays.Length0){for(inti=1;iarrays.Length;i++){boolisChange=false;for(intj=0;jarrays.Length-i;j++){if(arrays[j]arrays[j+1]){inttempValue=arrays[j];arrays[j]=arrays[j+1];arrays[j+1]=tempValue;isChange=true;}}if(!isChange)break;}}}第3页/共179.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。PublicReturnTypethis[paramTypeindex]{get{}set{}},可以用任何类型进行索引。10.求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m答:publicstaticintsumMethod1(intm){intsum=0;for(inti=1;i=m;i++){if(i%2!=0)sum+=i;elsesum-=i;}returnsum;}publicstaticintsumMethod2(intm){intsum=0;if(m%2!=0)sum=m/2+1;elsesum=-(m/2);returnsum;}12.在下面的例子里classA{publicA(){PrintFields();}publicvirtualvoidPrintFields(){}}classB:A{intx=1;inty;publicB()第4页/共17{y=-1;}publicoverridevoidPrintFields(){Console.WriteLine(x={0},y={1},x,y);}}当使用newB()创建B的实例时,产生什么输出?答:X=1,Y=013.什么叫应用程序域?答:应用程序域(applicationdomain)(AppDomain)一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。14.CTS、CLS、CLR分别作何解释?答:CTS:通用类型系统。CLS:通用语言规范。CLR:公共语言运行库。15.什么是装箱和拆箱?答:装箱:装箱转换是指将一个值类型隐式或显式地转换成一个object类型,拆箱:拆箱转换是指将一个对象类型显式地转换成一个值类型。16.什么是受管制的代码?答:受托管的代码不能直接写内存,是安全的,它受CLR的内存安全管理,而非托管代码是非安全代码,可以使用指针操作内存18.net中读写数据库需要用到那些类?他们的作用?答:DataSet:数据存储器Connection对象,用来创建和打开,关闭数据库连接。Command对象,用来执行各种sql语句或者调用存储过程。Adapter对象,数据适配器,用来执行SQL语句,配合数据集执行比较多。DataReader,只读的对象,有着很高的性能。21.在.net中,配件的意思是?答:程序集。(中间语言,源数据,资源,装配清单)22.常用的调用WebService的方法有哪些?答:1.使用WSDL.exe命令行工具。2.使用VS.NET中的AddWebReference菜单选项第5页/共1723..netRemoting的工作原理是什么?答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路答:根据点击的列头,包该列的名称取出,按照该列名排序后,再绑定到ListView中。35.能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerator方法的类型。36.GC是什么?为什么要有GC?答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.GC.Collect();37.Strings=newString(xyz);创建了几个StringObject?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s。38.abstractclass和interface有什么区别?答:抽象类:只能用做其它类的基类,它就是被设计来被继承的。不能创建它的实例。它使用abstract修饰符来声明。抽象类可以包含抽象成员,但不是必须的,它的成员可以抽象成员和普通带实现的成员的任意组合。它自己可以派生自另一个抽象类。任何派生自抽象类的类必须使用override关键字实现该类所有的抽象成员,除非派生类自己也是抽象类。接口:接口是表示一组函数成员而不实现成员的引用类型。其它类和结构可以实现接口。接口声明不包括数据成员。接口声明只能包含如下类型的静态成员函数的声明:方法、属性、事件、索引。接口的成员不能包含任何实现代码,而在每一个成员声明的主体后必须使用分号。接口名称必须从大写的I开始。它和类一样,也可以声明成分部接口。接口声明可以有任何的访问类型:public、protected、internal、private。接口成员是隐式Public的,不允许有任何访问修饰符。1,什么是线程池为了帮我们降低创建和销毁线程相关的成本,CLR为每一个进程维护了一个线程池。一开始进程的线程池是空的,如果进程使用的线程被创建,并且完成了线程的执行,它不会被销毁,而是加入到进程的线程池中,这后,如果进程需要一个另外一个线程,CLR就会从池中还原一个线程,这就节省了很多时间。39.启动一个线程是用run()还是start()?第6页/共17答:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行40.接口是否可继承接口?抽像类是否可实现(implements)接口?抽像类是否可继承实体类(concreteclass)?答:接口可以继承接口。抽像类可以实现(implements)接口,抽像类是否可继承实体类,但前提是实体类必须有明确的构造函数。41.构造器Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。42.是否可以继承String类?答:不可以,因为String类是密封类,被Sealed修饰符所修饰。44.两个对像值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?答:不对,有相同的hashcode。HashCode:可以简单的理解为内存的地址。==:操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals:操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。而字符串是一个特殊的引用型类型,在C#语言中,重载了string对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:可以。47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?不能,一个对象的一个synchronized方法只能由一个线程访问。49.List,Set,Map是否继承自Collection接口?答:List,Set是Map不是51.数组有没有length()这个方法?String有没有length()这个方法?答:数组和string都没有Length()方法,只有Length属性。52.sleep()和wait()有什么区别?答:sleep()方法是将当前线程挂起指定的时间。wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。53.shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?答:shorts1=1;s1=s1+1;有错,s1是short型,s1+1是int型,不能隐式转化为short型。可修改为s1=(short)(s1

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

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

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

×
保存成功