【1】简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。
【2】列举ASP.NET 页面之间传递值的几种方式。
QueryString:缺乏安全性,且不能传递对象
Session:既能传递简单数据类型,也能传递对象,并且数据量大小是不限制的,但是存储大量的数据会消耗较多的服务器资源,且容易丢失。
Cookie:既能传递简单数据类型,也能传递对象,但是安全性不高,容易伪造。
Application:既能传递简单数据类型,也能传递对象,并且数据量大小是不限制的,同时消耗较少的服务器资源,但作为全局变量容易被误操作。
Server.Transfer:面向对象,直接在服务器端重定向,但客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。
【3】C#中的委托是什么?事件是不是一种委托?
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
事件是一种特殊的委托。
【4】override与重载的区别
覆写(Override)的两个函数的函数名、参数的类型、参数的个数均相同。
重载(Overload)的两个函数的函数名虽然相同,但参数的类型和个数不同。
【5】什么是装箱和拆箱?
装箱是将值类型转换为引用类型(如 int 转 object);
拆箱是将引用类型转换为值类型(如 object 转 int)。
【6】什么是CTS、CLS和CLR?
CTS 的全称是通用类型系统(Common Type System)。通用类型系统定义了一个能够在CLR上运行的类型规范。
CLS 的全称是通用语言规范(Common Language Specification)。CLS是CTS的子集,定义了所有面向.NET的程序需要符合的最小规范集。
CLR 的全称是公共语言运行库(Common Language Runtime)。CLR是一个规范的实现,我们开发的 几乎所有的.NET程序都基于CLR的类库来实现,并且运行在CLR提供的运行引擎之上。
【7】什么是受管制的代码?
在.Net环境中(CLR)运行的任何代码都是受管制的代码(managed code)。
在.Net外部的代码也运行在windows上,这些代码称为未受管制的代码(unmanaged code)。
受管制的代码即托管代码,受托管的代码不能直接写内存,是安全的,而非托管代码是非安全代码,不经过CLR运行,可以使用指针操作内存。
【8】什么是强类型系统?
强类型系统,即类型识别系统(Run-Time Type Information),简写为RTTI。通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。
RTTI用来识别动态对象的类型。即使我们仅仅有基类的指针和引用,可以识别出该指针和引用所指向那个类(基类或派生类)。RTTI会带来一定的性能开销。
【9】什么是Code-Behind技术?
Code-Behind是asp.net中的术语(代码后置),就是所谓的代码分离。将ASP.NET程序需要呈现的一个网页分为*.aspx和*.cs这两个文件,实现了HTML代码和服务器逻辑代码的分离,这样更方便于代码编写、整理及调试。
【10】在.net中,配件是什么?
.net中,配件就是Assembly(程序集)。
程序集包含CLR执行的中间代码、程序集清单、类型元数据(版本、区域性、操作系统等)、资源集等。