Net面试问答大汇总_第1页
Net面试问答大汇总_第2页
Net面试问答大汇总_第3页
Net面试问答大汇总_第4页
Net面试问答大汇总_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、用.neet做B/S结构的的系统,您您是用几几层结构构来开发发,每一一层之间间的关系系以及为为什么要要这样分分层?答:从下至上上分别为为:数据据访问层层、业务务逻辑层层(又或或成为领领域层)、表示层层数据访访问层:有时候候也称为为是持久久层,其其功能主主要是负负责数据据库的访访问业务逻逻辑层:是整个个系统的的核心,它它与这个个系统的的业务(领领域)有有关表示层层:是系系统的UI部分,负负责使用用者与整整个系统统的交互互。优点: 分工明明确,条条理清晰晰,易于于调试,而而且具有有可扩展展性。缺点: 增加成成本。分层式结结构究竟竟其优势势何在?1、开发发人员可可以只关关注整个个结构中中的其中中某一

2、层层;2、可以以很容易易的用新新的实现现来替换换原有层层次的实实现;3、可以以降低层层与层之之间的依依赖;4、有利利于标准准化;5、利于于各层逻逻辑的复复用。概括来来说,分分层式设设计可以以达至如如下目的的:分散散关注、松散耦耦合、逻逻辑复用用、标准准定义。分层式结结构也不不可避免免具有一一些缺陷陷:1、降低低了系统统的性能能。这是是不言而而喻的。如果不不采用分分层式结结构,很很多业务务可以直直接造访访数据库库,以此此获取相相应的数数据,如如今却必必须通过过中间层层来完成成。2、有时时会导致致级联的的修改。这种修修改尤其其体现在在自上而而下的方方向。如如果在表表示层中中需要增增加一个个功能,为

3、为保证其其设计符符合分层层式结构构,可能能需要在在相应的的业务逻逻辑层和和数据访访问层中中都增加加相应的的代码。MVC模模式MVC(Moddel-Vieew-CConttrolllerr)把交互互系统的的组成分分解成模模型、视视图、控控制器三三种部件件mvc的的优点:1.通过过把项目目分成moddel vieew和conntroolleer,使得得复杂项项目更加加容易维维护。2.没有有使用vieew sstatte和服务务器表单单控件,可可以更方方便的控控制应用用程序的的行为3.应用用程序通通过conntroolleer来控制制程序请请求,可可以提供供丰富的的url重写。4.对单单元测试试的支

4、持持更加出出色5.在团团队开发发模式下下表现更更出众MVC的的不足:(1)增增加了系系统结构构和实现现的复杂杂性。对对于简单单的界面面,严格格遵循MVC,使模模型、视视图与控控制器分分离,会会增加结结构的复复杂性,并并可能产产生过多多的更新新操作,降降低运行行效率。(2)视图图与控制制器间的的过于紧紧密的连连接。视视图与控控制器是是相互分分离,但但确实联联系紧密密的部件件,视图图没有控控制器的的存在,其其应用是是很有限限的,反反之亦然然,这样样就妨碍碍了他们们的独立立重用。(3)视图图对模型型数据的的低效率率访问。依据模模型操作作接口的的不同,视视图可能能需要多多次调用用才能获获得足够够的显示

5、示数据。对未变变化数据据的不必必要的频频繁访问问,也将将损害操操作性能能。t如何实实现MVC模式,举举例说明明!web/bussineess/dattaacccesss列举ASSP.NNET 页面之之间传递递值的几几种方式式。1.使用QueerySStriing, 如?iid=11; rrespponsse. Reddireect()2.使用Sesssioon变量3.使用Serrverr.Trranssferr请说明在在.neet中常用用的几种种页面间间传递参参数的方方法,并并说出他他们的优优缺点。QueerySStriing 传递一一个或多多个安全全性要求求不高或或是结构构简单的的数值。但是

6、对对于传递递数组或或对象的的话,就就不能用用这个方方法了sesssioon(vviewwstaate) 简单,但但易丢失失 作用于于用户个个人,过量的的存储会会导致服服务器内内存资源源的耗尽尽。apppliicattionn 对象的的作用范范围是整整个全局局,也就就是说对对所有用用户都有有效。其其常用的的方法用用Locck和UnLLockkcoookiie 简单,但但可能不不支持,可可能被伪伪造 Coookiie是存放放在客户户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用input ttype=hidden 简单,可能被伪造u

7、rl参数简单,显示于地址栏,长度有限Server.Transfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流数据库稳定,安全,但性能相对弱什么么是Vieewsttatee?它有有什么作作用?ViewwStaate用来保保存页面面状态,就就是说提提交之后后我们还还可以看看到文本本框里面面的内容容就是VieewSttatee保存的的功劳。VieewSttatee只维护护当前页页面的状状态,不不同页面面之间不不能共享享,Sesssioon可以。VieewSttatee你可以以理解为为一个隐隐藏控件件。ASP.Nett页面生生命周期期每个页页面的生生命周期期为用户户的每一一次

8、访问问,也就就是说每每一次客客户端与与服务器器之间的的一个往往返过程程.全局变变量的生生命周期期在此之之间.1. PPagee_Innit();2. Loaad VViewwStaate andd Poostbbackk daata;3. Paage_Loaad();44. HHanddle conntrool eevennts;5. Paage_PreeRennderr();6. Paage_Rennderr();7. Unnloaad eevennt;8. Dissposse mmethhod callledd;ADO.nett中常用用的对象象有哪些些?分别别描述一一下。答:Connnec

9、ctioon 打开数数据库连连接Commmannd 执行数数据库命命令DattaAddaptter 连接数数据,执执行数据据库命令令,填充充DattaSeetDDataaSett 数据在在内存中中的缓存存,数据据结构DattaReeadeer 只读向向前的读读取数据据库DataaReaaderr和DattaSeet的异同DattaReeadeer使用时时始终占占用SqllConnnecctioon,在线操操作数据据库.任何对SqllConnnecctioon的操作作都会引引发DattaReeadeer的异常.因为DattaReeadeer每次只只在内存存中加载载一条数数据,所以占占用的内内存是

10、很很小的.因为DattaReeadeer的特殊殊性和高高性能.所以DattaReeadeer是只进进的.你读了了第一条条后就不不能再去去读取第第一条了了.DattaSeet则是将将数据一一次性加加载在内内存中.抛弃数数据库连连接.读取完完毕即放放弃数据据库连接接.因为DattaSeet将数据据全部加加载在内内存中.所以比比较消耗耗内存.但是确确比DattaReeadeer要灵活.可以动动态的添添加行,列,数据.对数据据库进行行回传更更新操作作存储过程程和sql语句的的优缺点点优点:1.提高性性能,减减少网络络传输,节节约时间间。2.减少少网络流流量 存储过过程位于于服务器器上,调调用的时时候只

11、须须传递存存储过程程的名称称以及参参数,不不用每次次访问都都传递很很长的sqll 语句。4.安全全性 减少sqll 注入式式攻击。5.可维维护性高高 更新存存储过程程通常比比更改、测试以以及重新新部署程程序集需需要较少少的时间间和精力力。缺点:1.交互互性差。2.可移移植性差差说出你所所了解的的数据库库访问组组件(例如ADO,至少4种)答:ADO,ADOO.Neet,MDAAC(MMicrrosooft Datta AAcceess Commponnentts),Miccrossoftt SQQL SServver OLEE DBB Prroviiderr,Micrrosooft Jett O

12、LLE DDB PProvvideer,Dessktoop DDataabasse DDrivverss ODDBC Driiverr,Vissuall FooxPrro OODBCC Drriveer什么是面面向对象象万物都都是对象象,其主主要特征征:封装装、继承承、多态态怎样实现现多态1.通过过对象直直接调用用成员函函数时,始始终默认认使用该该对象的的类的成成员函数数(除非非用:显示指指定类名名)。2.通过过指向对对象的指指针或引引用调用用成员函函数时:如果该该函数是是实函数数,则调调用该指指针或引引用的类类的成员员函数;如果该该函数是虚函函数,则则调用该该指针或或引用指指向的对对象的类类

13、的成员员函数。面向对象象的思想想主要包包括什么么?答:任何何事物都都可以理理解为对对象,其其主要特特征: 继承。封装。多态。特点:代码好好维护,安安全,隐隐藏信息息什么是装装箱和拆拆箱?答:从值值类型接接口转换换到引用用类型装装箱。从从引用类类型转换换到值类类型拆箱箱。装箱箱(boxxingg)是将将值类型型的数据据转化成成引用类类型,intt i=3; objjectt o = ii ;便是装装箱过程程,而拆拆箱(unnboxxingg)是将饮饮用类型型数据转转换值类类型,比如intt j = (intt)o;属于于拆箱什么是IInteerfaace?它与Absstraact Claass有

14、什么么区别?接口(IInteerfaace)是用来来定义行行为规范范的,不不会有具具体实现现,而抽抽象类除除定义行行为规范范外,可可以有部部分实现现,但一一个类能实实现多个个接口,但但只能继继承一个个父类什么时候候使用抽抽象类,什什么时候候用接口口接口用用于规范范,抽象象类用于于共性。接口中中只能声声明方法法,属性性,事件件,索引引器。而而抽象类类中可以以有方法法的实现,也可可以定义义非静态态的类变变量。抽抽象类是是类,所所以只能能被单继继承,但但是接口口却可以以一次实实现多个个。抽象象类可以以提供某些些方法的的部分实实现,接接口不可可以.抽象类类的实例例是它的的子类给给出的。接口的的实例是是

15、实现接接口的类类给出的的。再抽象类类中加入入一个方方法,那那么它的的子类就就同时有有了这个个方法。而在接接口中加加入新的的方法,那那么实现现它的类类就要重新编写写(这就就是为什什么说接接口是一一个类的的规范了了)。接接口成员员被定义义为公共共的,但但抽象类类的成员员也可以以是私有有的、受保保护的、内部的的或受保保护的内内部成员员(其中中受保护护的内部部成员只只能在应应用程序序的代码码或派生生类中访访问)。此外接口口不能包包含字段段、构造造函数、析构函函数、静静态成员员或常量量。什么是抽抽象类(absstraact claass)?一种不不可以被被实例化化的类。抽象类类中一般般含有抽抽象方法法,

16、当然然也可有有具体实实现。继继承类只只有实现现过所有有抽象类的抽抽象方法法后才能能被实例例化。何时必须须声明一一个类为为抽象类类?当这个个类中包包含抽象象方法时时,或是是该类并并没有完完全实现现父类的的抽象方方法时。接口(iinteerfaace)是什什么?只含有有共有抽抽象方法法(pubblicc abbstrractt meethood)的类类。这些些方法必必须在子子类中被被实现。为什么不不能指定定接口中中方法的的修饰符符?接口中中的方法法用来定定义对象象之间通通信的契契约,指指定接口口中的方方法为私私有或保保护没有有意义。他们默默认为公公有方法法。可以继承承多个接接口么?当然。那么如果果

17、这些接接口中有有重复的的方法名名称呢?这种情情况中你你可以决决定如何何实现。当然需需要特别别得小心心。但是是在编译译环节是是没有问问题的。接口和抽抽象类的的区别是是什么?接口中中所有方方法必须须是抽象象的,并并且不能能指定方方法的访访问修饰饰符。抽抽象类中中可以有有方法的的实现,也也可以指指定方法的的访问修修饰符。详述.NNET里claass和strructt的异同同!类是引用用类型,可可以继承承类、接接口和被被继承,有有默认的的构造函函数,有有析构函函数,可可以使用用absstraact和seaaledd,有prootecctedd修饰符符,必须须使用new初始化化。结构是是值类型型,只能能

18、继承接接口,不不能被继继承,没没有默认认的构造造函数,可可以创建建,没有有析构函函数,不不可以用用absstraact和seaaledd,没有prootecctedd修饰符符,可以以不用new初始化化。如何选择择结构还还是类1 堆栈的的空间有有限,对对于大量量的逻辑辑的对象象,创建建类要比比创建结结构好一一些2 结构表表示如点点、矩形形和颜色色这样的的轻量对对象例如,如如果声明明一个含含有 10000 个点对对象的数数组,则则将为引引用每个个对象分分配附加加的内存存。在此情情况下,结结构的成成本较低低。3 在表现现抽象和和多级别别的对象象层次时时,类是是最好的的选择4 大多数数情况下下该类型型

19、只是一一些数据据时,结结构时最最佳的选选择C#中的的接口和和类有什什么异同同。异:不能直直接实例例化接口口。接口不不包含方方法的实实现。接口、类和结结构可从从多个接接口继承承。但是是C# 只支持持单继承承:类只只能从一一个基类类继承实实现。类定义义可在不不同的源源文件之之间进行行拆分。同:接口、类和结结构可从从多个接接口继承承。接口类类似于抽抽象基类类:继承承接口的的任何非非抽象类类型都必必须实现现接口的的所有成成员。接口可可以包含含事件、索引器器、方法法和属性性。一个类类可以实实现多个个接口。consst和reaadonnly有什么么区别?connst关键字字用来声声明编译译时常量量,rea

20、adonnly用来声声明运行行时常量量。用seaaledd修饰的的类有什什么特点点seaaledd 修饰符符用于防防止从所所修饰的的类派生生出其它它类。如如果一个个密封类类被指定定为其他他类的基基类,则则会发生生编译时时错误。密封类类不能同同时为抽抽象类。seaaledd 修饰符符主要用用于防止止非有意意的派生生,但是是它还能能促使某某些运行行时优化化。具体体说来,由由于密封封类永远不会有有任何派派生类,所所以对密密封类的的实例的的虚拟函函数成员员的调用用可以转转换为非非虚拟调调用来处处理。虚函数的的用法答:1)vvirttuall指明一一成员函函数为虚虚函数,而virrtuaal仅用于于类的

21、定定义里,在类外外可不加加此关键键字.2)一个类类的成员员函数被被定义为为虚函数数时,子类该该函数仍仍保持虚虚函数特特征.3)子类覆覆盖此函函数时,定义里里可不加加virrtuaal关键字,但函数数声明要要和基类类的完全全一致!且此声声明是必必须的.4)不是纯纯虚函数数时,父类的的虚函数数必须要要实现; 而若将将父类的的虚函数数设定为为纯虚函函数时,子类必必需要覆覆盖之而而且必须须要实现现之!解释viirtuual、seaaledd、oveerriide和absstraact的区别virrtuaal申明虚虚方法的的关键字字,说明明该方法法可以被被重写seaaledd说明该该类不可可被继承承ov

22、eerriide重写基基类的方方法absstraact申明抽抽象类和和抽象方方法的关关键字,抽抽象方法法不提供供实现,由由子类实实现,抽抽象类不不可实例例化。重载和覆覆写有什什么区别别?答:重载载是方法法的名称称相同,不同的的参数类类型,不不同的参参数个数数,不同同的参数数顺序。覆写提提供了子子类中改改变父类类方法行行为的实实现(是进行行基类中中函数的的重写)。在方法定定义中,virrtuaal有什么么含义?答:被virrtuaal修饰的的方法可可以被子子类覆写写能够将非非静态的的方法覆覆写成静静态方法法吗?答:不能能,覆写写方法的的签名必必须与被被覆写方方法的签签名保持持一致,除除了将vir

23、rtuaal改为oveerriide。可以覆写写私有的的虚方法法吗?答:不可可以,甚甚至子类类中无法法访问父父类中的的私有方方法能够阻止止某一个个类被其其他类继继承吗?答:可以以,使用用关键字字seaaledd能够实现现允许某某个类别别继承,但但不允许许其中的的某个方方法被覆覆写吗?答:可以以,标记记这个类类为pubblicc,并标标记这个个方法为为seaaledd。如何区别别重载方方法?不同的的参数类类型,不不同的参参数个数数,不同同的参数数顺序c#继承承:basee 表示当当前对象象基类的的实例(使用baase关关键字可可以调用用基类的的成员)thiis表示示当前类类的实例例 在静态方方法

24、中不不可以使使用baase和和thiis关键键字 派生类会会继承基基类所有有的成员员但是构构造函数数和析构构函数不不会被继继承 注意如果果派生类类的方法法和基类类的方法法同名则则基类中中的方法法将会被被隐藏如如果需要要隐藏则则可以使使用关键键字neew来隐隐藏如果果不写nnew关关键字默默认处理理为隐藏藏虽然基基类中同同名的方方法被隐隐藏了但但是还是是可以通通过baase关关键字来来调用 /如果果子类方方法的方方法名和和基类的的方法名名相同时时,系统统将隐藏藏基类同同名方法法,自动动调用子子类的同同名方法法/派生生类会继继承基类类所有的的成员,但但是不能能显示调调用基类类的是有有成员/在派派生

25、类中中不可以以调用基基类的是是有成员员,如numm1,numm2,但是是可以实实现调用用基类方方法virttuall 用在基基类中指指定一个个虚方法法属性表表示这个个方法属属性可以以重写 overrridde 用在派派生类中中表示对对基类虚虚方法属属性的重重写 不能重写写非虚方方法或静静态方法法重写的的基方法法必须是是 viirtuualaabsttracct 或 oveerriide 的为什什么 oveerriide 也可以以重写呢呢因为基基类中的的 oveerriide 实际上上是对基基类的基基类进行行的重写写由于继继承可传传递所以以也可以以对基类类中 oveerriide 的方法法进行重

26、重写 overrridde 声明不不能更改改 virrtuaal 方法的的可访问问性ovverrridee 方法和 virrtuaal 方法必必须具有有相同的的访问级级别修饰饰符 不能使用用修饰符符 neewsttatiicviirtuual 或 absstraact 来修改 oveerriide 方法 重写属性性声明必必须指定定与继承承属性完完全相同同的访问问修饰符符类型和和名称并并且被重重写的属属性必须须是 viirtuualaabsttracct 或 oveerriide 的 标记允许许被重写写修饰静静态方法法中不允允许使用用virrtuaal关键键字成员员变量允允许使用用virrtua

27、al关键键字 属性可以以被声明明为虚属属性(使用viirtuual关关键字) 重写基类类的方法法(重写同同名的方方法中有有virrtuaal关键键字的方方法) 重写和隐隐藏的区区别隐藏藏(neww关键字)是给子子类的同同名方法法分配新新的内存存空间重重写(oveerriide关关键字)是子类类的同名名方法放放在基类类同名方方法的原原来所在在位置基基类的同同名方法法位置向向后移 属性也可可以重写写 virttuall关键字字和ovverrridee关键字字是成对对出现的的否则是是语法错错误 派生类可可以通过过将重写写声明为为 seaaledd 来停止止虚拟继继承这需需要在类类成员声声明中的的 o

28、veerriide 关键字字前面放放置 seaaledd 关键字 在子类中中重写基基类中的的虚方法法时可以以使用bbasee关键字字调用基基类中的的虚方法法 /使用用basse关键可可以在子子类中访访问基类类同名的的方法/父类类的引用用指向子子类的实实例Testt tss = neww Teest22(); 父类的引引用指向向子类的的实例(调用的的是子类类的方法法) 父类的引引用只认认识父类类的方法法不认识识子类的的新方法法可以用用来调用用被子类类覆盖的的父类的的方法 父类的引引用依然然到父类类方法位位置去调调用如果果基类方方法被声声明为vvirttuall并且在在子类中中被ovverrrid

29、ee结果访访问到的的是被子子类ovverrridee的方法 C#中的的委托是是什么?事件是是不是一一种委托托?委委托可以以把一个个方法作作为参数数代入另另一个方方法。委委托可以以理解为为指向一一个函数数的引用用。是,是是一种特特殊的委委托C#中的的堆和栈栈栈(Sttackk)由系系统管理理生存期期,存储储代码执执行和调调用路径径,执行行或调用用完毕即即从栈中中清除;堆(Heaap)中保保存值和和对象,调调用完毕毕之后依依然存在在,由垃垃圾回收收器查找找栈中有有无指向向该值或或对象的的引用,无无则从堆堆中删除除C# rref与out区别:1、使用用ref型参数数时,传传入的参参数必须须先被初初始

30、化。对out而言,必必须在方方法中对对其完成成初始化化。2、使用用ref和out时,在在方法的的参数和和执行方方法时,都都要加Ref或Out关键字字。以满满足匹配配。3、ouut适合用用在需要要rettrunn多个返返回值的的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。你对泛型型了解吗吗?简单单说明一一下泛型型的有什什么好处处?泛型:通通过参数数化类型型来实现现在同一一份代码码上操作作多种数数据类型型。利用用“参数化化类型”将类型型抽象化化,从而而实现灵灵活的复复用好处是类型安安全和减减少装箱箱、拆箱箱。提高高性能、类型安安全和质质量,减减少重复复性的编编程任务务C#中所所有对

31、象象共同的的基类是是什么?Sysstemm.Obbjecct.如何在CC#中实现现继承?在类名名后加上上一个冒冒号,再再加上基基类的名名称。C#支持持多重继继承吗?不支持持。可以以用接口口来实现现。被prootecctedd修饰的的属性/方法在在何处可可以访问问?在继承承或间接接继承与与这个类类的子类类中可以以访问。私有成员员会被继继承么?会,但但是不能能被访问问。所以以看上去去他们似似乎是不不能被继继承的,但但实际上上确实被被继承了了。C#提供供一个默默认的无无参构造造函数,当当我实现现了另外外一个有有一个参参数的构构造函数数时,还还想保留留这个无无参数的的构造函数。这样我我应该写写几个构构

32、造函数数?答:两个个,一旦旦你实现现了一个个构造函函数,C#就不会会再提供供默认的的构造函函数了,所所以需要要手动实实现那个个无参构构造函数。简述 pprivvatee、 prroteecteed、 puubliic、 innterrnall 修饰符符的访问问权限。priivatte : 私有成成员, 在类的的内部才才可以访访问。prootecctedd : 保护成成员,该该类内部部和继承承类中可可以访问问。pubblicc : 公共成成员,完完全公开开,没有有访问限限制。intternnal: 在同一一命名空空间内可可以访问问。new的的两种用用法答:实例例话对象象,隐藏藏基类方方法。.ne

33、ww有几种种用法第一种种:neew CClasss();第二种:覆盖方方法publlic neww XXXXX()第三种:neww 约束指指定泛型型类声明明中的任任何类型型参数都都必须有有公共的的无参数数构造函函数。3.daataggridd.daatassousse可以连连接什么么数据源源 ddataasett,daatattablle,ddataavieewdataasett,daatattablle,ddataavieew , ILListt类成员有有( )种可访访问形式式可访问性性:puubliic ,prootecctedd ,pprivvatee,innterrnall委托与事事件

34、的用用法答:puubliic ddeleegatte vvoidd haandeels();/返回值值是voiid,没有有参数pubblicc evventt haandeels eveentHHanddelss;hhis.eveentHHanddelss = neww haandeels(funn);pubblicc vooid funn() 传入某个个属性的的SET方法的的隐含参参数的名名称是什什么?答:vaaluee,它的的类型和和属性所所声明的的类型相相同。striing是值类类型还是是引用类类型?引用类型型Striing类与StrringgBuiildeer类有什什么区别别?为什什么

35、在.Neet类库中中要同时时存在这这2个类?(简答)striingBBuillderr比strringg更节约约内存,所以strringgBuiildeer更快Striing 对象是是不可改改变的。每次使使用 Syysteem.SStriing 类中的的方法之之一或进进行运算算时(如如赋值、拼接等等)时,都都要在内存中中创建一一个新的的字符串串对象,这这就需要要为该新新对象分分配新的的空间。而 SttrinngBuuildder 则不会会。在需需要对字字符串执行行重复修修改的情情况下,与与创建新新的 Sttrinng 对象相相关的系系统开销销可能会会非常昂昂贵。如如果要修修改字符符串而不不创建

36、新的的对象,则则可以使使用 Syysteem.TTextt.SttrinngBuuildder 类。例例如,当当在一个个循环中中将许多多字符串串连接在在一起时时,使用 StrringgBuiildeer 类可以以提升性性能。在C中中,strringg sttr = nuull 与 sttrinng sstr = “” 请尽量量使用文文字或图图象说明明其中的的区别。答:sttrinng sstr = nnulll 是不给给他分配配内存空空间,而strringg sttr = 给它分分配长度度为空字字符串的的内存空空间。ASP.nett的身份份验证方方式有哪哪些?分分别是什什么原理理?答:Wiin

37、dwwos(默认) 用IISSFroom(窗体) 用帐户Paasspportt(密钥)Sesssionn有什么么重大BUG,微软软提出了了什么方方法加以以解决?答:是iis中由于于有进程程回收机机制,系系统繁忙忙的话Sesssioon会丢失失,可以以用Satte sservver或SQLL Seerveer数据库库的方式式存储Sesssioon不过这这种方式式比较慢慢,而且且无法捕捕获Sesssioon的END事件c#中的的三元运运算符是是?:.能用fforeeachh遍历访访问的对对象需要要实现()接口口或声明明 (GettEnuumerratoor)方法的的类型。. 和 有什么么区别?表表

38、示绑定定的数据据源是服服务器端端代码块块 常量在.neet(C# or t)中如如何获得得当前窗窗体或控控件的句句柄,特特别是控控件本身身的句柄柄(请列列举)thiss(C#) MMe(vvb.nnet).C#可可否对内内存进行行直接的的操作?在.neet下,.neet引用了了垃圾回回收(GC)功能能,它替替代了程程序员 不过在C#中,不不能直接接实现Finnaliize方法,而而是在析析构函数数中调用用基类的的Finnaliize()方法DateeTimme是否可可以为nulll?不能,因因为其为为Strructt类型,而而结构属属于值类类型,值值类型不不能为nulll,只有引引用类型型才能

39、被被赋值nulllDateeTimme.PParsse(mmySttrinng); 这行代代码有什什么问题题?有问题,当myString不能满足时间格式要求的时候,会引发异常,建议使用DateTime.TryParse()net的的错误处处理机制制是:采用trry-cattch-fiinallly结构,为什么不不提倡cattch(Exccepttionn)ttry.caatchh在出现现异常的的时候影影响性能能; 应该捕捕获更具具体得异异常,比比如IOEExeccepttionn,OuutOffMemmoryyExccepttionn等catcch(EExceeptiion e)thrrow

40、e;和cattch(Exccepttionn e)thhroww;的区别别将发生的的异常对对象抛出出,另一一个只是是抛出异异常,并并没有抛抛出原异异常对象象)erroor和exccepttionn区别:erroor表表示恢复复不是不不可能但但很困难难的情况况下的一一种严重重问题。比如说说内存溢溢出。不不可能指指望程序序能处理理这样的的情况。exceeptiion表示一一种设计计或实现现问题。也就是是说,它它表示如如果程序序运行正正常,从从不会发发生的情情况。GET与与POSST的区别别在FORRM提交的的时候,如如果不指指定Metthodd,则默默认为GET请求,Forrm中提交交的数据据将会

41、附附加在url之后,以以?分开与url分开。字母数数字字符符原样发发送,但但空格转转换为“+“号,其其它符号号转换为为%XXX,其中XX为该符符号以16进制表表示的ASCCII(或ISOO Laatinn-1)值。GET请求请请提交的的数据放放置在HTTTP请求协协议头中中,而POSST提交的的数据则则放在实实体数据据中;在使用 POSST 方法的的情况下下,传输输数据时时不会将将数据作作为 URRL 的一部部分;它它们会作作为一个个独立的的实体来来传输。因此,POSST 方法更更安全,你你也可以以用这个个方法传传输更多多的数据据。而且且用 POOST 传输的的数据不不一定要要是文本本,用 G

42、EET 方法传传输的却却一定要要是文本本。(1)gget是从服服务器上上获取数数据,posst是向服服务器传传送数据据。(1)在在客户端端,Get方式在在通过URL提交数数据,数数据在URL中可以以看到;POSST方式,数数据放置置在HTMML HHEADDER内提交交。(2)对对于get方式,服服务器端端用Reqquesst.QQuerrySttrinng获取变变量的值值,对于于posst方式,服服务器端端用Reqquesst.FFormm获取提提交的数数据。(2)GGET方式提提交的数数据最多多只能有有10224字节,而而POSST则没有有此限制制。(3)安安全性问问题。正正如在(1)中提

43、提到,使使用 Geet 的时候候,参数数会显示示在地址址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。Bindd和Evaal函数的的区别 绑定表表达式 1 Evaal 单向绑绑定:数据是是只读的的 Biind 双向绑绑定:数据可可以更改改,并返回回服务器器端,服务器器可以处处理更改改后的数数据,如存入入数据库库.2.当对次次表达式式操作时时候,必必须用Evaal 如3 绑定控控件的属属性时要要用Binnd,而Evaal则是其其它一些些。 例如:assp:TTexttBoxx

44、IDD=FFirsst RunnAt=Seerveer Texxt= / 例如:Respponsse.RRediirecct和Serrverr.Trranssferr请求求的过程程:1)浏览器asppx文件请请求服务器器执行遇到Ressponnse.Reddireect语句-服务器器发送Ressponnse.Reddireect后面的的地址给给客户机机端的浏浏览器浏览器器请求执执行新的的地址2)浏览器asppx文件请请求-服务器器执行-遇到Serrverr.Trranssferr语句-服务器器转向新新的文件件可以见Serrverr.Trranssferr比Ressponnse.Reddiree

45、ct少了一一次服务务器发送送回来和和客户端端再请求求的过程程.跳转转对象:1)Ressponnse.Reddireect可以切切换到任任何存在在的网页页。2)SServver.Traansffer只能切切换到同同目录或或者子目目录的网网页.数据据保密:1、Ressponnse.Reddireect后地址址会变成成跳转后后的页面面地址。2、Serrverr.Trranssferr后地址址不变,隐隐藏了新新网页的的地址及及附带在在地址后后边的参参数值。具有数数据保密密功能。传递的的数据量量(网址址后附带带的参数数):1、Ressponnse.Reddireect能够传传递的数数据以2KBB(也就是

46、是地址栏栏中地址址的最大大的长度度)为限。2、传递递的数据据超过2KB时,务务必使用用Serrverr.Trranssferr。Servver.UrllEnccodee、HtttpUttiliity.UrllDeccodee的区别Serrverr.UrrlEnncodde的编编码方式式是按照照本地程程序设置置的编码码方式进进行编码码的,而HtttpUttiliity.UrllEnccodee是默认的的按照.neet的utff-8格式进进行编码码的。Stattic 和 非Staaticc的区别别:一、用Staaticc声明的的方法和和变量,不不需要实实例化该该类就调调用;二、Sttatiic的,

47、就就一定要要用实例例化的对对象来调调用,即即用new来实例例化。举例说:如果有一一个类Peooplee,有一一个Staaticc的方法MiaaoShhu(), 调用方方法就是是 Peeoplle.MMisooShuu()有一个非非Staaticc的方法gettNamme(), 调用方方法就是是 Peeoplle pp= nnew Peooplee(); p.gettNamme();如何实现现连接池池确保你每每一次的的连接使使用相同同的连接接字符串串(和连连接池相相同);只有连连接字符符串相同同时连接接池才会会工作。如果连连接字符符串不相相同,应应用程序序就不会会使用连连接池而而是创建建一个新新

48、的连接接。优点使用连接接池的最最主要的的优点是是性能。创建一一个新的的数据库库连接所所耗费的的时间主主要取决决于网络络的速度度以及应应用程序序和数据据库服务务器的(网网络)距距离,而而且这个个过程通通常是一一个很耗耗时的过过程。而而采用数数据库连连接池后后,数据据库连接接请求可可以直接接通过连连接池满满足而不不需要为为该请求求重新连连接、认认证到数数据库服服务器,这这样就节节省了时时间。缺点数据库连连接池中中可能存存在着多多个没有有被使用用的连接接一直连连接着数数据库(这这意味着着资源的的浪费)。技巧和提提示1 当当你需要要数据库库连接时时才去创创建连接接池,而而不是提提前建立立。一旦旦你使用

49、用完连接接立即关关闭它,不不要等到到垃圾收收集器来来处理它它。2 在在关闭数数据库连连接前确确保关闭闭了所有有用户定定义的事事务。3 不不要关闭闭数据库库中所有有的连接接,至少少保证连连接池中中有一个个连接可可用。如如果内存存和其他他资源是是你必须须首先考考虑的问问题,可可以关闭闭所有的的连接,然然后在下下一个请请求到来来时创建建连接池池。连接池FFAQ1何何时创建建连接池池?当第一个个连接请请求到来来时创建建连接池池;连接接池的建建立由数数据库连连接的连连接字符符创来决决定。每每一个连连接池都都与一个个不同的的连接字字符串相相关。当当一个新新的连接接请求到到来时如如果连接接字符串串和连接接池

50、使用用的字符符串相同同,就从从连接池池取出一一个连接接;如果果不相同同,就新新建一个个连接池池。2何何时关闭闭连接池池?当连接池池中的所所有连接接都已经经关闭时时关闭连连接池。3当当连接池池中的连连接都已已经用完完,而有有新的连连接请求求到来时时会发生生什么?当连接池池已经达达到它的的最大连连接数目目时,有有新的连连接请求求到来时时,新的的连接请请求将放放置到连连接队列列中。当当有连接接释放给给连接池池时,连连接池将将新释放放的连接接分配给给在队列列中排队队的连接接请求。你可以以调用cloose和dissposse将连接接归还给给连接池池。4我我应该如如何允许许连接池池?对于.NNET应用程程

51、序而言言,默认认为允许许连接池池。(这这意味着着你可以以不必为为这件事事情做任任何的事事情)当当然,如如果你可可以在SQLLConnnecctioon对象的的连接字字符串中中加进Pooolinng=ttruee;确保你你的应用用程序允允许连接接池的使使用。5我我应该如如何禁止止连接池池?ADO.NETT默认为为允许数数据库连连接池,如如果你希希望禁止止连接池池,可以以使用如如下的方方式:1) 使使用SQLLConnnecctioon对象时时,往连连接字符符串加入入如下内内容:Pooolinng=FFalsse;2) 使使用OLEEDBCConnnecttionn对象时时,往连连接字符符串加入入

52、如下内内容:OLEE DBB Seerviicess=-44;提高.NNET的性能1 使用异异步方式式调用Web服务和和远程对对象只要有可可能就要要避免在在请求的的处理过过程中对对Web服务和和远程对对象的同同步调用用,因为为它占用用的是的的ASPP.NEET 线程池池中的工工作线程程,这将将直接影影响Web服务器器响应其其它请求求的能力力。2 使用用适当的的Cacchinng策略来来提高性性能3 判断断字符串串,不要要用比较。/避免免if(strrABCC!=nnulll & sttrABBC!=)/推荐荐if(!sttrABBC.IIsNuullOOrEmmptyy)4 页面面优化5 用完

53、完马上关关闭数据据库连接接6 尽量使使用存储储过程,并并优化查查询语句句7 只读数数据访问问用SqllDattaReeadeer,不要要使用DattaSeet.UDPP连接和TCP连接的的异同答:前者只只管传,不管数数据到不不到,无须建建立连接接.后者保保证传输输的数据据准确,须要连连结.请解释转转发与跳跳转的区区别转发就就是服务务端的跳跳转A页面提提交数据据到B页面,B页面进进行处理理然后从从服务端端跳转到到其它页页面跳转就就是指客客户端的的跳转简述你对对XMLL Weeb SServvicee的原理理的认识识?答:利利用SOAAP(简单对对象访问问协议)在htttp上执行行远程方方法的调调

54、用,也也可以使使用WSDDL(Web服务描描述语言言)来完成完整整的描述述Web服务,然然后用UDDDI注册各各个服务务提供商商提供的的服务,以以便共享享他们。什么叫应应用程序序域?答:应应用程序序域可以以理解为为一种轻轻量级进进程。起起到安全全的作用用。占用用资源小小。CTS、CLS、CLR分别作作何解释释?答:CTS:通用用语言系系统。CLS:通用用语言规规范。CCLR:公共共语言运运行库。什么是受受管制的的代码?答:unssafee:非托托管代码码。不经经过CLR运行。什么是强强类型系系统?答:RTTTI:类型型识别系系统。什么是ccodee-beehinnd技术ccodeebehhin

55、dd是指代代码和用用户界面面分开asspx andd css在.neet中,配配件的意意思是?答:程程序集。(中间间语言,源源数据,资资源,装装配清单单)常用的调调用WebbSerrvicce的方法法有哪些些?答:1.使用WSDDL.eexe命令行行工具。 2.使用VS.NETT中的Addd Weeb RRefeerennce菜单选选项net Remmotiing 的工作作原理是是什么?答:服服务器端端向客户户端发送送一个进进程编号号,一个个程序域域编号,以以确定对对象的位位置。O/R Mapppinng 的原理答:利用用反射,配配置将对对象和数数据库表表映射remootinng和webbse

56、rrvicce两项技技术的理理解以及及实际中中的应用用。答:WS主要是是可利用用HTTTP,穿透透防火墙墙。而Remmotiing可以利利用TCPP/IPP,二进进制传送送提高效效率。out保保留字怎怎么使用用,什么么时候使使用答:有有时为了了从一个个函数中中返回多多个值,我我们需要要使用out关键字字,把输输出值赋赋给通过过引用传传递给方方法的变变量(也也就是参参数)。但C#要求变变量再被被引用的的前必须须初始化化。在调调用该方方法时,还还需要添添加out关键字字PDB是是什么东东西? 在调试试中它应应该放在在哪里?PDB是是用于保保存调试试和项目目状态信信息的文文件,在在debbug的时候

57、候将产生生pdb文件,调调试的时时候应该该放在和和对应应应用程序集相相同目录录。使用ASSMX的XMLL Weeb服务与与使用SOAAP的.NEET RRemootinng的区别?Web服服务使用用的消息息机制,而Remoting采用的RPC. Web Service能用于不同平台,不同语言,Remoting只适用于.Neet。效率率上Remmotiing高于Xmll Weeb SServvicee类型系统统是由XMLLSchhemaa表示的的吗?CLS是XMLLSchhemaa表示的的吗?不清楚从概念上上阐述前前期绑定定(earrly-binndinng)和后后期绑定定(latte-bbin

58、ddingg)的区区别?这个就像像是强弱弱类型的的比较相相似,前前期绑定定是在编编译的时时候就确确定了要要绑定的的数据,而而后期绑绑定是在在运行的的时候才填充数数据。所所以前期期绑定如如果失败败,会在在编译时时报编译译错误,而而后期绑绑定失败败只有在在运行时时的时候候才发生生调用Asssemmblyy.Looad算静态态引用还还是动态态引用?动态列举一一下你所所了解的的XML技术及及其应用用答:保保存配置置,站与站站之间的的交流,WEEB SSERVVICEE。以及及与数据据库的数数据交互互等地方方都要用用它.7.如何理理解委托托?答:相当于于函数指指针,定义了了委托就就可以在在不调用用原方法

59、法名称的的情况下下调用那那个方法法.委托托具有以以下特点点:委托类类似于 C+ 函数指指针,但但它是类类型安全全的。委托允允许将方方法作为为参数进进行传递递。委托可可用于定定义回调调方法。委托可可以链接接在一起起;例如如,可以以对一个个事件调调用多个个方法。方法不不需要与与委托签签名精确确匹配。有关更更多信息息,请参参见协变变和逆变变。C# 2.00 版引入入了匿名名方法的的概念,此此类方法法允许将将代码块块作为参参数传递递,以代代替单独独定义的的方法。概述反射射和序列列化反射:程程序集包包含模块块,而模模块包含含类型,类类型又包包含成员员。反射射则提供供了封装装程序集集、模块块和类型型的对象

60、。您可可以使用用反射动动态地创创建类型型的实例例,将类类型绑定定到现有有对象,或或从现有有对象中中获取类类型。然然后,可以调用用类型的的方法或或访问其其字段和和属性序列化:序列化化是将对对象转换换为容易易传输的的格式的的过程。例如,可可以序列列化一个个对象,然然后使用用 HTTTP 通过 Innterrnett 在客户户端和服服务器之之间传输输该对象象。在另另一端,反反序列化化将从该该流重新新构造对对象。11) XmmlSeeriaalizzer是如何何工作的的?使用用这个类类的进程程需要什什么ACL权限?我只知道道XmllSerriallizeer是将对对象的属属性和字字段进行行序列化化和反

温馨提示

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

评论

0/150

提交评论