C#基础面试
1. 简述Private、Protected、Public、Internal 等访问修饰符的访问权限问题
Private:私有成员,只有类的内部成员可以访问
Protected:保护成员,在类的内部和继承类中可以访问
Public:公共成员,没有访问权限
Internal:在当前程序集内都可以进行访问
2.ADO.NET中的五个主要对象
(1)Connection对象:主要作用是开启程序集和数据库之间的连接(open()和close()方法)。
(2)Commend对象:发送SQL语句指令以及调用在数据库中的存储过程。
(3)DataAdapter对象:功能:在数据源和DataSet之间执行数据传输的工作。
它可以通过Commend对象下达命令,将获得的数据传送到DataSet中。
(4)DataSet对象:是一个存储在内存中的缓存区(Cache),可以将数据库中所查询的数据先保留在Dataset中,也可将整个数据库的数据显示出来。
(5)DaraReader对象:依次向下循环读取数据(只有只读功能)
数据库和程序集之间的执行过程:
ADO.NET使用Connection对象连接数据库,使用Commend对象或DataAdapter对象执行SQL语句或存储过程,并将执行的结果返回给DataReaderd对象或DataAdapter对象,然后再使用取得的DataReader对象或DataAdapter对象尽享操作数据结果。
3.列举ASP.NET页面之间的传值方式
经常使用的方法有以下几种:
(1)使用QueryString
(2)使用Session变量
(3)使用Server.Transfer
(4)使用cookie对象
(5)使用application对象
传值的更多详细信息(有例子和代码):http://www.cnblogs.com/zhangkai2237/archive/2012/05/06/2486462.html
4.Response.Redirect方法与Server.Transfer之间的区别
Server.Transfer方法是服务器内部的转接,浏览器并不知晓(即已经跳转到指定的页面,显示的页面内容是跳转后的内容,而地址栏中的地址确实跳转页面之前的地址)
Response.Redirect方法是有浏览器参与的,在地址栏中可以看到地址的变化
5.重写(overide)与重载(overload)
重写(override)是进行基类中函数的的重写,是面向对象的概念。
重载(overload)是方法名相同,参数或参数类型不同,进行多次的重栽以适应不同的需要,是面向过程的概念。
6.C#中的索引是否只能根据数字进行索引?是否于允许多个索引参数?
C#中的索引的索引的参数和类型都是任意的,是不受到限制的。
使用reflect反编译器,可以看到C#索引的实质是Set_item、Get_item方法。
7.属性与public字段的区别是什么?
属性可以对设置值、取值进行控制,例如年龄是禁止设置负值的;
字段不可以对值进行控制
8.三次架构的了解?
三层架构即是:将整个业务应用划分为以下三层:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
表示层(UI):展现给用户的界面
业务逻辑层(BLL):对数据层的操作(对业务逻辑的管理)
数据访问层(DAL):直接对数据库进行操作,主要是对数据库中的数据的增、删、改、查等操作
优点:分工明确,条理清晰,易于调试,具有扩展性
9.MVC模式
MVC(Model View Controler)模型-视图-控制器
MVC是一种典型的平行关系,模型--业务领域的事情 视图--负责显示的事情 控制器--把数据读取出来填充模型后把模型交给视图处理
最大的好处是将逻辑交给处理
10.什么是装箱?什么是拆箱?
装箱:从值类型转换到引用类型
拆箱:从引用类型转换到值类型
Object obj=null;
obj=1; //装箱
int m=(int)obj; //拆箱
11.什么叫应用程序域(AppDomain)?
一种边界,它由公共语言运行库围绕统一应用程序范围内的创建的对象建立(即从应用程序的入口点开始,沿着对象激活的序列的任何位置)
12.CTS、CLS、CLR分别做如何解释?