简答题五道
三级目录
- abstract class和interface有什么区别?
1.抽象类bai(abstract class): 抽象du类是一种特殊的类,有如下的特点:
.抽象方法制作声明zhi,不包含具体dao的实现,可以看做是没有重写的虚方法.。
.抽象类不能被实例化.具有其他类相同的特性.。
.抽象类可以没有抽象方法和抽象属性,但是一旦有了抽象方法,就一定要把这个类声明为抽象类.。
.具体派生类必须要覆盖基类的抽象方法.。
.抽象类可以派生自另一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果覆盖,则其他派生类也必须覆盖他们.。
2.接口(interface): 接口是引用类型的,类似抽象类但又不同于抽象类.。
.不能被实例化.。
.只能包含实现的方法声明.。
.成员可以包括方法,属性,索引器和事件.。
.接口中不能包含常量,字段(域),构造函数,析构函数或者静态成员.。
.接口中的所有成员默认为是public,因此接口中不能有private修饰符.。
.派生类必须实现接口中的所有成员.。
.一个类可以直接实现多个接口,接口之中用逗号隔开.。
.一个接口可以有多个父接口,实现该接口的类必须实现所有接口中的所有成员.。 - 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。
1.response.Redirect("?id=1"):通过url,一般用于传递少量数据
2.使用Session传值:用户之间不共享,可以保存用户特有的数据
3.使用Server.Transfer
4.使用Cookie传值:一般用于在本地浏览器记录一些用户相关数据 - 在ASP.NET 中有哪些数据验证控件(请解释ASP.NET中以什么方式进行数据验证)?
(1)RequiredFieldValidator:检查用户是否输入;
(2)CompareValidator:检查两个表单输入项的输入信息是否存在某种指定关系,比如大、等于等;
(3)RangeValidator:检查用户输入是否在某一指定范围;
(4)RegularExpressionValidator:检查用户输入是否符合某一指定的正则表达式要求;
(5)CustomValidator: 检查用户输入是否符合开发者指定的验证逻辑规则。
JS验证 - Server.Transfer和Response.Redirect的区别是什么?
(1)Server.Transfer在服务器端完成,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以客户端浏览器中的URL地址是不会改变的,这个过程中浏览器和Web 服务器之间经过了一次交互;Response.Redirect是客户端完成,是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以客户端浏览器中的URL地址是会改变的.这个过程中浏览器和Web 服务器之间经过了两次交互。 (2)Server.Transfer在服务器端完成,不需要客户端提出请求,减少了客户端对服务器端提出请求。
(3)Server.Transfer只能够转跳到本地虚拟目录指定的页面,也就是工程项目中的页面,而Response.Redirect则十分灵活,可以跳转到任何URL地址。]
(4)Server.Transfer可以将前一个页面的各种类型的值传到新的页面;Response.Redirect则只能借助URL中带参数或是结合(QueryString、Session、Cookie、Application)办法把各种类型的值传到新的页面。 - 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决
有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断。