(.NET程序员面试资料)

(.NET程序员面试资料)

ID:40657531

大小:3.67 MB

页数:39页

时间:2019-08-05

(.NET程序员面试资料)_第1页
(.NET程序员面试资料)_第2页
(.NET程序员面试资料)_第3页
(.NET程序员面试资料)_第4页
(.NET程序员面试资料)_第5页
资源描述:

《(.NET程序员面试资料)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、东玉龙收集整理第一部分C#东玉龙收集整理谈谈你对面向对象的认识?答案:面向对象是一种编程思想,也是一种设计理念。在软件编程中,面向对象有几个基本的概念,他们是:类、对象、继承、封装和多态。而正是这些元素构成了面向对象设计开发的基本逻辑。而实际上,理解面向对象一个重要的方法就是以实际的生活来类比对象世界,对象世界的逻辑和我们生活得逻辑形成对比的时候,这种体验将会更有亲切感。面向对象的三大特征是:封装、继承、多态;封装隐藏了类内部的具体实现细节,对外则提供统一访问接口,来操作内部数据成员。这样实现的好处是

2、实现了UI分离,程序员不需要知道类内部的具体实现,只需按照接口协议进行控制即可。同样对类内部来说,封装保证了类内部成员的安全性和可靠性。继承,就是面向对象中类与类之间的一种关系。继承的类称为子类、派生类,而被继承类称为父类、基类或超类。通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次。多态分为基类继承式多态和接口实现式多态。几类继承多态的关键是继承体系的设计与实现,而接口实现式多态通过实现接口的方法约定形成继承体系,具有更高的灵活性。1

3、)你如何理解事件与委托的概念?答案:事件:事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象叫做事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。在C#中,事件与委托一起使用来实现事件处理。在实现事件时,需要3个相互联系的元素:提供事件数据的类(消息)、事件委托和引发事件的类。委托:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参

4、数和返回值。委托可以理解成类型安全的函数指针。2)类和结构的异同?答案:class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、构造函数、索引器、操作符等。所有的类都最终继承自System.Object类。struct(结构)是一种值类型,用于将一组相关的信息变量组织为一个单一的变量实体。所有的结构都继承自System.ValueType类,因此是一种值类型。相同点:语法类似;不同点:1、class是引用类型,继承自System.Object类;struct是值类

5、型,继承自System.ValueType类,因此不具多态性。2、从职能观点来看,class表现为行为;而struct常用于存储数据;3、class支持继承,可以继承自类和接口;而struct没有继承性,struct不能从class继承,也不能作为class的基类,但struct支持接口继承;4、class可以声明无参构造函数,可以声明析构函数;而struct只能东玉龙收集整理声明带参数构造函数,且不能声明析构函数。因此,struct没有自定义的默认无参构造函数,默认无参构造器只是简单地把所有初始化为

6、它们的0等价值。1、实例化时,class要使用new关键字;而struct可以不使用new关键字,如果不以new来实例化struct,则其所有的字段将处于未分配状态,直到所有字段完成初始化,否则引用未赋值的字段会导致编译错误;2、class可以为抽象类(abstract),可以声明抽象函数;而struct不能为抽象类,也不能声明抽象函数;3、class可以声明protected成员、virtual成员、sealed成员和override成员;而struct不可以,但是struct可以重载System.

7、Object的3个虚方法,Equals()、ToString()和GetHashTable();4、class的对象复制为浅拷贝和深拷贝,必须经过特别的方法来完成复制;而struct创建的对象复制简单,直接以等号连接即可;5、class实例由垃圾回收机制来保证内存的回收处理;而struct变量使用完成后立即自动解除内存分配;6、作为参数传递时,class变量和struct变量有所不同;7、实现一个主要用于存储数据的结构时,应该考虑struct;8、Struct变量占有堆栈的空间,因此只适用于数据量相对

8、小的场合;9、结构数组具有更高的效率;10、提供某些和非托管代码通信的兼容性。1)抽象类和接口的异同?答案:接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常量。抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。