C#面试题目整理(一)
1.您在什么情况下会用到虚方法?它与接口有什么不同?
当子类需要重新定义父类的一个方法时,父类的方法需要定义为虚方法;
在定义接口的时候不能又方法体,但是虚方法可以有方法体,
实现时,子类可以不实现父类的虚方法,但是如果要是继承了接口,那么一定要实现
2.Override与重载有什么区别?
重载:就是函数名相同,根据参数类型,或者个数不同,方法的重载可以提高方法的可读性;
override:重写,如果加上这个关键字,那么就会将父类的方法或者函数覆盖掉
3.值类型与引用类型有什么区别?
值类型的数据时放在栈里的,引用类型的数据是放在堆里的,在栈里为其存放一个引用的地址
值类型存放的就是实际数据,引用类型存放的是数据的地址
4.怎样理解静态变量?
静态变量(static)--即表示在编译时刻开始就永远存在的变量,相对实例变量而言的,一般来讲实例变量一开始是不存在的,需要new后才能分配空间,而静态变量从系统一开始就会为其分配内存空间,不需要new 直接可以访问
5.向服务器发送请求有几种方式?
POST请求和GET请求
GET请求:会将请求的内容放到URL中,服务器段会通过Request.QueryString回的变量的值,Get传送的数据量比较小,不能大于2KB,Get请求的安全性相对来讲差一点
POST请求:不会在url中显示请求的数据,服务器段会通过Request.Form来获得提交的数据,Post传送的数据量比较大,默认不受限制,不过IIS会有大小的限制,Post请求的安全性比较高。
一般情况下,查询建议多用get请求,而进行数据操作的时候建议使用Post请求
6.DataReader与Dataset有什么区别?
与数据库连接
DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接。
Datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。
处理数据速度
DataSet读取、处理速度较慢。
DataReader读取、处理速度较快。
更新数据库
在对DataSet数据集中的数据进行更新后,可以把数据更新回原来的数据库。
在对DataReader中的数据进行更新后,没有办法进行数据库更新。
支持分页排序
在DataSet中支持分页、动态排序等操作。
在DataReader中没有分页、动态排序的功能。
占用内存
DataSet在 IIS 服务器上所使用的内存较多。
DataReader在 IIS 服务器上所使用的内存较少。
7.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session.Cookie.Application,您有几种方法进行处理?
1.QueryString ,2.使用Server.Transfer,3.使用Cache
4.使用数据库,5.使用文件
8.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
一般来讲就是三层,UI,DAL,BLL 主要是讲业务逻辑和表现逻辑分开,各司其职,分三层是为了使项目架构体系更加清晰,而且项目参与人员的分工也可以更加明确,也有利于项目后期维护,这些都是分层的优点。
9.软件开发过程一般有几个阶段?每个阶段的作用?
一般的话一个软件的开发过程主要有五个阶段:
1.问题的定义及规划--确定开发的目的以及可行性
2.需求分析--对软件需要实现的各个功能进行详细需求分析
3.软件设计--需要根据需求分析的结果,对整个软件系统进行设计,框架,数
据库等
4.程序编码--将设计转化成代码
5.软件测试--分为单元测试、组装测试、系统测试三个阶段进行
10.微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Data Access Application Block:
1.对数据库访问提供了简单、高效的访问方式
减少编写重复累赘代码去执行标准的数据访问任务
易于使用,使用单条语句即可完成Stored Procedure的调用
屏蔽了对常用ADO.NET使用的复杂度,提供了基于最佳实践, 正确快速使用接口
2.对不同类型的数据库(SQLServer/Oracle/DB2)提供了编程上的透明性
为不同数据库类型提供了统一的编程。
当移植应用程序到不同数据库类型时,减少重写代码的数量
3.搭起了逻辑数据库与物理数据库间的桥梁,降低改变物理数据目标的难度
4.增强了数据库联接串的安全性
5.容易对数据库访问的配置信息进行调整和验证
11.请列举一些您用到过的设计模式以及在什么情况下使用该模式?
1.单例模式:全局配置、唯一资源,当一个类非常消耗系统资源的时候,而且这些资源可以全局共享的时候,就应该设计成singleton模式
//申明一个静态的变量,类型为类本身
//将类的构造函数私有化,使得这个类不可以被外界创建
//提供静态的方法,创建类的实例
2.工厂模式:
3.策略模式:
12.您对WebService的体会?
WebService主要用来给客户端提供数据服务,因此WebService是沟通客户端BLL业务逻辑层和数据库的桥梁
主要通过XML来返回想要得到的结果,即:XML格式的数据
13.通过超链接怎样传递中文参数?
Server.UrlEncode("中文");--进行转换