常见.net面试题及答案

2021-06-21 面试试题

  1、ADO.NET中的五个主要对象

  Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。

  Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。

  DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Command 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet 使用的功能。

  DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是ADO.NET 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的`能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。

  DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。

  ADO.NET 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 对象操作数据结果。

  2、列举ASP.NET 页面之间传递值的几种方式。

  1.使用QueryString, 如....?id=1; response. Redirect()....

  2.使用Session变量

  3.使用Server.Transfer

  4.Cookie传值

  5.Application传值

  3、C#中的委托是什么?事件是不是一种委托?

  委托可以把一个方法作为参数代入另一个方法。

  委托可以理解为指向一个函数的引用。

  是,是一种特殊的委托。

  4、override与重载的区别

  重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

  Override 是进行基类中函数的重写。为了适应需要。

  5、三层架构通

  常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

  区分层次的目的即为了“高内聚,低耦合”的思想。

  表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。

  业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

  数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。

  三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。

  优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。

  缺点: 增加成本。

  6、MVC模式

  MVC(Model View Controller)模型-视图-控制器

  MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。

  7、.NET和C#有什么区别

  答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。

  C#是一种编程语言,可以基于.NET平台的应用。

  8、一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。

  答: public static int Foo(int i)

  {

  if (i <= 0)

  return 0;

  else if(i > 0 && i <= 2)

  return 1;

  else return Foo(i -1) + Foo(i - 2);

  }

  }

  9、什么是装箱和拆箱?

  答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

  10、 什么是受管制的代码?

  答:unsafe:非托管代码。不经过CLR运行。

【常见.net面试题及答案】相关文章:

必备.net面试题及答案06-19

.net面试题精选02-03

.net面试题01-31

关于.net的面试题02-03

常见护士面试题目及答案02-26

JAVADBC常见面试题及答案04-13

Asp.Net 面试题02-03

常见志愿者面试题及答案07-24

会计人员常见的面试题及答案02-01