什么是继承
继承是将所有父类的方法属性遗传到子类.继承分为接口继承和实现继承.
一 .NET类型语法基础
1, 值类型与引用类型的区别
值类型赋值会产生一个新的副本,而引用类型赋值只是赋值的引用.值类型分配在堆栈上,引用类型对象分配在托管堆上.比较时值类型比较的是内容,引用类型比较的是引用.
2, 简述拆箱和装箱的原理
拆箱和装箱的本质上是值类型在转换到引用类型时引发在堆栈和托管堆上的一系列移动操作.装箱时是堆栈到托管堆的移动,拆箱反之.
3, 结构(struct)和类的区别
结构值类型,类为引用类型.结构不支持继承,没有无参构造函数.在仅仅数据存储的场合时,适合用结构,因为结构不符合面向对象的思想.都可以定义带参数的构造函数.
4, 参数的几种传递方式
ref:传入前必须初始化
out:传入前不必初始化,但要求参数在方法返回前被初始化.
params:必须是最后一个参数.并且只能有一个params参数.是一个数目可变的参数的方法参数.
5, 属性与方法的异同
属性是有返回值而无参数的一种特殊的方法,属性拥有更好的扩展性,语法更加优美,代码简单易读.
6, 循环的使用
While:不确定循环次数,具有死循环的危险
do...while:区别while结束后检查条件.
for:确定次数的情况下使用
foreach:遍历那些实现了IEnumberable的容器的类型.
7, using的作用
在using语句块结束时调用Dispose方法,会为using自动加上try...catch语句.本质与异常捕捉一样.
8,GC的运行机制
.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。每次您使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进
9,Dispose和Finalize方法
Dispose方法为使用者的主动调用,而Finalize是对象被GC之后的第一轮回收后,由一个专用的.NET线程所调用.Dispose方法不能保证被调用,但Finalize的垃圾回收机制会保证被调用.Finalize涉及到一些列复杂的方法,代价非常高.
10, 重写重载和隐藏
重写是指用关键字Override重写方法,属性,索引器事件的抽象或者虚..重载是方法名相同,参数不同.
11,什么是序列化
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
通过序列化,可以把对象实例转换成一种可以存储交互的一种流,通过为类型添加Serialization特性,可以使对象申明为可序列化.可用BinaryFormmater等类型序列化.
12,GET和POST请求有何区别
HTTP协议的请求有两种,GET和POST,GET是显式的把表单数据放到URI中,并且对长度和数据值编码有限制,POST是把数据放到HTTP请求体中,没有长度限制.
在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
get是从服务器上获取数据,post是向服务器传送数据。
对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。
get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。
13,ASP.NET页面生存周期
初始化(init),加载数据页面(load),触发事件(postback),保存状态并呈现页面(save,render).
14,SESSION有几种存储方式,有何区别
4种方式,IIS(快速,IIS容易重启,session丢失),状态服务器(asp.net状态服务的一个进程,SQL SERVER,自定义保存程序.
15,页面跳转的几种方法
redirect(需要从客户到服务端的一个来回操作),transfer,execute,js.超链接
response和server.transfer的区别:response多一次跳转.transfer地址栏不会改变.
16,cookie与session
cookie是web服务器存放在本地硬盘的一段文本,当访问这个web时会读取这个cookie,存储的方式是键-值 对.
当session启动时,服务器会生成一个session id,然后服务器开辟一块内存.
区别:cookie客户端,session服务器,cokkie不安全,session占用资源,
Session丢失的原因是什么: session设置的时间,存储方式,杀毒软件扫描了一些webconfig文件
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
二 委托,事件,反射,接口,抽象类
1,委托的基本原理
每个委托至少包含了一个指向某个方法的指针,该方法可以是实例方法,也可以是静态方法.
2,委托回调实例和静态方法有何区别
当委托指向静态方法时,_target将会被设置成NULL,指向实例方法时,会被指向实例方法.
3,什么是链式委托
是指又一个委托串成的链表,该链表上的委托会全部被顺序的执行
4,链式委托的执行顺序是怎样的
是顺序的执行,如果有需要,可以使用GetInvocationList()方法手动进行设置.
5,是否可以定义拥有返回值方法的委托连
可以,但多于一个的带返回值的方法被添加到委托链中时,需要手动调用每个方法,不然只有最后一个被执行方法的返回值.
6,委托适合的场合
7,什么是事件
事件是一种使对象或者类能够提供同志的成员,可以通过提供事件处理程序为相应的事件添加可执行代码.事件是一种特殊的委托.
8,事件和委托有什么关系
事件是一个委托类型,该委托的方法无返回值,并且拥有两个参数,object,TEventArg,事件的订阅和取消都是通过委托链表实现的.
9,什么是反射
反射是一种动态分析程序集,模块,类型,字段等目标对象的机制.它的实现依托于元数据.
10,.NET提供了哪些类型来实现反射
Assembly,EventInfo,FieldInfo,FieldInfo,MemberInfo,Module,PropertyInfo
第三章 WebService
1,简述SOAP协议
WebService是基于SOAP协议的,SOAP是以XML方式提供一个简单的轻量的用于在分布环境中交换数据.
2,简述WebService的异常机制
一个SOAP消息只能存在于一个fault节点,会被转入一个soapexception的对象中,此对象会被放入fault节点传回传回客户端.
第四章 ADO.NET
1,ado.net一共支持几种数据源
sql,oledb,oracle,odbc
2,解释dataset,datatable,datareader,datadapter
dataset:把数据库的副本存到应用程序里,程序开始时,把数据存储到dataset里
datatable:是内存中的一个表,常用来读取视图.
datareader:只能读取,不能写入,从上到下依次读.
datadapter:用来读取数据库,可读可写,内存占用较大.
第五章 泛型
1, 泛型是类型安全的,不会出现类型转换而发生的异常。
2,泛型最常见的用途是创建集合类。
2,代码重用
3,减少boxing和unboxing
4,泛型约束
当一个泛型参数没有任何约束时,它可以进行的操作和运算是非常有限的.因为不能对实参做任何类型上的保证,这时候就需要用到泛型的约束.
T:struct 类型参数必须是值类型
T:class 类型参数必须是引用类型
T:new() 必须具有无参的构造函数
T:基类名: 类型参数必须是指定的基类或派生自指定的基类
T:<接口名称>: 类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。
T:U 为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。这称为裸类型约束。
第六章 设计模式
1, Single pattern
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2, Factory Method
定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
3, Abstract Factory
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
4, Builder Pattern
创建的表现形式不同,但是创建的过程相同。
第七章 XML
1, 如何读写XML
XML读写类型和DOM读写
XMLReader和XMLWriter DOM是xmldocument
或是linq读取XElement或者XDocument
C#各个版本增加的东西
.NET 2.0
泛型
匿名方法
新增ASP.NET个性化功能,如对主题、皮肤、母版页和WebParts 的支持
.NET 3.0
WCF,WPF
.NET 3.5
AJAX,LINQ,WCF REST,EF
.NET 4
新版本的CLR,明明参数和可选参数,DLR
MVC5新功能
AS.NET IDENTITY2.0
BOOTSTRAP
新的路由方式用Attribute