114培训网欢迎您来到西安.NET培训中心!

400-850-8622

全国统一学习专线 8:30-21:00

西安.NET培训,西安IT培训

授课机构:西安.NET培训中心

关注度:1168

课程价格: ¥6500.00元

上课地址:请咨询客服

开课时间:滚动开班

咨询热线:400-850-8622

在线报名

课程详情在线报名

更新时间:2024-11-25
西安.NET培训中心提供.NET面试题 QQ:1350366700 643430980 电话:029-8878946 1. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里? 答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质 2. 讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了) 答:web服务,是利用SOAP(简单对象访问协议,Simple Object Access Protocol)在HTTP上执行远程方法调用的一种方法,也可以使用WSDL(Web Service Description Language,Web服务描述语言)来完整的描述Web服务,基于XML标准。 3. C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点? 答:都是面向对象的语言,C#和java都是建立在虚拟机上的。从java中吸取了跨语言。 4. C#可否对内存进行直接的操作?(这可是个难点哦?要注意!) 答:可以,只要标记为unsafe 5. 用Visual C++ 6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合? 答:被编译成dll 6. 以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假) 7. 你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)? Q3: 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么 答:使用数据库关系:这样可以尽可能的规范编码、对比较大型的开发来说也容易维护数据的一致性和完整性,也让数据库的性能尽可能的发挥出来。 实在是不能使用数据库的关系的时候才使用触发器,这让数据逻辑简单,但这时候要注意记录文档,不然,触发器多了,维护难度会相当大。 *是自己编写逻辑:这样会造成数据的一致性,完整性的维护逻辑相当大,也十分分散,没有良好的文档记录习惯的话,一旦任务出现交接,其他人很难继续你未完成的工作,甚至于过一段时间以后,自己要完全理请逻辑都是一个麻烦的事!因为这些逻辑相当于隐藏起来了的。 Q4:ADO。NET相对于ADO等主要有什么改进? 答:ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线。由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。 Q5:ASP。NET与ASP相比,主要有哪些进步? 答:ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象*限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 Q6:C#中的委托是什么?事件是不是一种委托? 答:委托是一种安全的函数指针,事件是一种消息机制 Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引? Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样? 答:实现接口IEnumerable Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。 Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用 答:XMLHTTP可以主动获取远端web代码,类似HttpWebRequest Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? 答:接口用于规范,抽象类用于共性。接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。抽象类可以提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。再抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外接口不能包含字段、构造函数、析构函数、静态成员或常量。 Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么 答:用户控件(UserControl): 扩展名为*.ascx,跟*.aspx在结构上相似,是指页面中 加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用 户控件中使用 。 自定义控件,跟HtmlControl或WebControl相似,编译后可以添加引用到工具栏里 面,直接用鼠标拖动使用。 看情况使用,如果功能比较多,会用自定义控件。 Q14:大概描述一下ASP。NET服务器控件的生命周期 答:(1)初始化----在此阶段中,主要完成两项工作:一、初始化在传入Web请求生命周期内所需的设置;二、跟踪视图状态。首先,页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开发人员可以重写该方法为控件提供初始化逻辑。此后,页面框架将调用TrackViewState方法来跟踪视图状态。需要注意的是:多数情况下,Control基类提供的TrackViewState方法实现已经足够了。只有在控件定义了复杂属性时,开发人员才可能需要重写TrackViewState方法。 (2)加载视图状态----此阶段的主要任务是检查服务器控件是否存在以及是否需要将其状态恢复到它在处理之前的请求结束的状态。因此该过程发生在页面回传过程中,而不是初始化请求过程。在此阶段,页面框架将自动恢复ViewState字典。如果服务器控件不维持其状态,或者它有能力通过默认方式保存其所有状态而使用ViewState字典,那么开发人员则不必实现任何逻辑。针对那些无法在ViewState字典中存储的数据类型或者需要自定义状态管理的情况,开发人员可以通过重写LoadViewState方法来自定义状态的恢复和管理。 (3)处理回发数据----若要使控件能够检查客户端发回的窗体数据,那么必须实现System.Web.UI.IPostBackDataHandler接口的 LoadPostData()方法。因此只有处理回发数据的控件参与此阶段。 (4)加载----至此阶段开始,控件树中的服务器控件已创建并初始化、状态已还原并且窗体控件反映了客户端的数据。此时,开发人员可以通过重写OnLoad()方法来实现每个请求共同的逻辑。 (5)发送回发更改通知----在此阶段,服务器控件通过引发事件作为一种信号,表明由于回发而发生的控件状态变化(因此该阶段仅用于回发过程)。为了建立这种信号,开发人员必须再次使用System.Web.UI.IPostBackDataHandler接口,并实现另一方法-RaisePostBackChangedEvent()。其判断过程为:如果控件状态因回发而更改,则LoadPostData()返回true;否则返回false。页面框架跟踪所有返回true的控件并在这些控件上调用RaisePostDataChangedEvent()。 (6)处理回发事件----该阶段处理引起回发的客户端事件。为了便于将客户端事件映射到服务器端事件上进行处理,开发人员在此阶段可以通过实现System.Web.UI.IPostBackEventHandler接口的RaisePostBackEvent()方法来实现该逻辑。由此途径,服务器控件将成功捕获回发的客户端事件进行服务器端的相应处理。 (7)预呈现----该阶段完成在生成控件之前所需要的任何工作。通常情况下是通过重写OnPreRender()方法完成该工作。需要注意的是:在该阶段,可以保存在预呈现阶段对控件状态所做的更改,而在呈现阶段进行的更改则会丢失。 (8)保存状态----如果服务器控件不维持状态,或者它有能力通过默认方式保存其所有状态而使用ViewState字典,那么开发人员不必在该阶段实现任何逻辑。因为这个保存状态的过程是自动的。如果服务器控件需要自定义状态保存,或者控件无法在ViewState字典中存储特殊的数据类型,则需要通过重写SaveViewState()方法来实现状态保存。 (9)呈现----表示向HTTP输出流中写入标记文本的过程。开发人员通过重写Render()方法使其在输出流上自定义标记文本。 (10)处置----在此阶段中,通过重写Dispose ()方法完成释放对昂贵资源的引用,如数据库链接等。 (11)卸载----完成的工作与"处置"阶段相同,但是,开发人员通常在Dispose()方法中执行清除,而不处理Unload事件。 Q15:UML 答:统一建模语言。 Q16:面向对象的概念,主要特点 答:封装,继承,多态 Q17:类划分的依据。类粒度问题 Q18:事物管理问题
姓名不能为空
手机号格式错误