1、重载(Overload )和覆写(Override)的区别
概念:重载方法名相同,参数列表不同(参数类型及个数);覆写方法名、返回值类型、参数类型及个数完全相同
范围:重载在一个类中,覆写在继承关系中
限制:重载没有权限要求,覆写的方法的访问权限不能比父类更严格
2、属性和public字段的区别是什么?
属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置。虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的
3、请叙述属性与索引器的区别
(1)属性名可自定义,索引器必须以this命名。
(2)属性可以为实例或静态,索引器必须是实例的。
(3)索引器有索引参数列表,而属性没有。
4、类(class)与结构(struct)的异同?
Class可以被实例化,属于引用类型,是分配在内存的堆上的;
Struct属于值类型,是分配在内存的栈上的
5、接口和类有什么异同
不同点:
不能直接实例化接口。
接口不包含方法的实现。
接口可以多继承,类只能单继承。
类定义可在不同的源文件之间进行拆分。
相同点:
接口、类和结构都可以从多个接口继承。
接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
接口和类都可以包含事件、索引器、方法和属性。
6、abstract class和interface有什么区别?
1.抽象类(abstract class)
抽象类是一种特殊的类,有如下的特点:
.抽象方法声明,不包含具体的实现.
.抽象类不能被实例化.具有其他类相同的特性.
.具体派生类必须要覆盖基类的抽象方法.
.抽象类可以派生自另一个抽象类
2.接口(interface)
接口是引用类型的
.不能被实例化.
.只能包含方法声明.
.成员可以包括方法,属性,索引器和事件;不能包含常量,字段(域),构造函数,析构函数或者静态成员.
.接口中的所有成员默认为是public,因此接口中不能有修饰符.
.派生类必须实现接口中的所有成员.
.一个类可以直接实现多个接口,接口之间用逗号隔开,实现该接口的类必须实现所有接口中的所有成员.
7、string str = null 与 string str =""说明其中的区别。
string str= " ",表示一个空串,被实列化了,占用了内存空间,
string str=null,表示一个空引用,没有占用了空间
8、请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。
(1)QueryString 传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了
(2)session(viewstate) 简单,但易丢失。作用于用户个人,过量的存储会导致服务器内存资源的耗尽。
(3)application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock
(4)Cookie是存放在客户端的,简单,但可能不支持,可能被伪造
(5)Server.Transfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流 数据库稳定,安全,但性能相对弱