整理net面试题(附答案)1.以下哪些可以作为接口成员?(多选)(ABDE)A.方法B.属性C.字段D.事件E.索引器F.构造函数G.析构函数2.以下关于ref和out的描述哪些项是正确的?(多选)(ACD)A.使用ref参数,传递到ref参数的参数必须最先初始化。B.使用out参数,传递到out参数的参数必须最先初始化。C.使用ref参数,必须将参数作为ref参数显式传递到方法。D.使用out参数,必须将参数作为out参数显式传递到方法。3.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?(B)A.publicB.protectedC.internalD.protectedinternal4.classClass1{privatestaticintcount=0;staticClass1(){count++;}publicClass1(){count++;}}Class1o1=newClass1();Class1o2=newClass1();请问,o1.Count的值是多少?(C)A.1B.2C.3D.45.abstractclassBaseClass{publicvirtualvoidMethodA(){}publicvirtualvoidMethodB(){}}classClass1:BaseClass{publicvoidMethodA(stringarg){}publicoverridevoidMethodB(){}}classClass2:Class1{newpublicvoidMethodB(){}}classMainClass{publicstaticvoidMain(string[]args){Class2o=newClass2();Console.WriteLine(o.MethodA());}}请问,o.MethodA调用的是:(A)A.BaseClass.MethodAB.Class2.MethodAC.Class1.MethodAD.都不是6.请叙述属性与索引器的区别。属性索引器通过名称标识。通过签名标识。通过简单名称或成员访问来访问。通过元素访问来访问。可以为静态成员或实例成员。必须为实例成员。属性的get访问器没有参数。索引器的get访问器具有与索引器相同的形参表。属性的set访问器包含隐式value参数。除了value参数外,索引器的set访问器还具有与索引器相同的形参表。7.请叙述const与readonly的区别。每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。为了不违背编码规则,通常把static数据成员声明为private,然后通过statciproperty提供读写访问。const关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。readonly关键字与const关键字不同:const字段只能在该字段的声明中初始化。readonly字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。另外,const字段是编译时常数,而readonly字段可用于运行时常数。readonly只能在声明时或者构造函数里面初始化,并且不能在static修饰的构造函数里面。8.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:a、匿名用户不允许访问这个应用程序。b、所有雇员除了Tess和King都允许访问这个应用程序。请问您应该使用以下哪一个代码段来配置这个应用程序?(A)A.authorizationdenyusers=”allwin\tess,allwin\king”allowusers=”*”denyusers=”?”/authorizationB.authorizationallowusers=”*”denyusers=”allwin\tess,allwin\king”denyusers=”?”/authorizationC.authorizationdenyusers=”allwin\tess,allwin\king”denyusers=”?”allowusers=”*”/authorizationD.authorizationallowusers=”allwin\tess,allwin\king”allowusers=”*”/authorizationE.authorizationallowusers=”*”denyusers=”allwin\tess,allwin\king”/authorization9、SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。(10)答:SelectIDFROMtable1WhereLastUpdateDate=(SelectMAX(LastUpdateDate)FROMtable1)10、根据线程安全的相关知识,分析以下代码,当调用test方法时i10时是否会引起死锁?并简要说明理由。(10分)publicvoidtest(inti){lock(this){(i10){i--;test(i);}}}答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)11、分析以下代码。(10)publicstaticvoidtest(stringConnectString){System.Data.OleDb.OleDbConnectionconn=newSystem.Data.OleDb.OleDbConnection();conn.ConnectionString=ConnectString;try{conn.Open();…….}catch(ExceptionEx){MessageBox.Show(Ex.ToString());}finally{if(!conn.State.Equals(ConnectionState.Closed))conn.Close();}请问1)以上代码可以正确使用连接池吗?答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?答:只可以捕捉数据库连接中的异常吧.(finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)12、简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。(10)答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。13、公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:(10)答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中14、给定以下XML文件,完成算法流程图。(10)=”MSDOS622”FileFileName=”Command.com”/File/DirFileFileName=”MSDOS.SYS”/FileFileFileName=”IO.SYS”/File/DriverC/FileSystem请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。答:voidFindFile(Directoryd){FileOrFolders=d.GetFileOrFolders();foreach(FileOrFolderfofinFileOrFolders){if(fofisFile)YouFoundafile;elseif(fofisDirectory)FindFile(fof);}}简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层层下去更多海量资料下载,敬请访问