资源描述
目录
目录 1
1. 接口与抽象类有什么区别 3
2. String类与StringBuilder类有什么区别? 3
3. 在中类(class)与结构(struct)的异同: 3
4. Override与重载有什么区别 4
5. C#中接口和类的异同 4
6. 请你说说.NET中类和结构的区别? 4
7. HashMap和Hashtable区别? 4
8. 值类型和引用类型的区别? 5
9. Heap与stack的差别? 5
10. 谈谈final, finally, finalize的区别。 5
11. Collection 和 Collections的区别。 5
12. sleep() 和 wait() 有什么区别? 5
13. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法 6
14. OLEDBConnection 和SQLConnection 有什么区别? 6
15. C/S和B/S的区别,优缺点有哪些? 6
16. ArrayList,Array和string[]三着的区别? 7
17. ADO.net常用的对象有哪些?DataSet和DataReader的区别 7
18. web user control 和 cusrom control 区别和含义 8
19. 详细阐述cookie 、viewstate、session之间的区别,以及其各自工作原理 8
20. Collection 和 Collections的区别 8
21. error和exception有什么区别? 8
22. ADO和ADO.NET的区别 9
23. HTTP1。0和HTTP1。1协议的区别 9
24. Java Script 类型与dot net 类型的区别 9
25. Java Script 与 Java 的区别? 9
26. SQL SERVER 的"存储过程"和"触发器"有什么不同之处?运行上有什么特点 9
27. 描述Cookie和Session的作用,区别和各自的应用范围 10
28. C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么? 10
29. 简单描述包和dll异同 10
30. 简述parent和owner的区别 11
31. 数据的实体完整性和参照完整性的区别 11
32. DIV和Table两种页面排版的优缺点 11
33. SQL、Access、Oracle三种数据库之间的区别? 11
34. Asp和A的区别? 12
35. 如何选择使用结构还是类: 12
36. OSI网络结构的七层模型及其核心思想是什么 12
37. 进程和线程的区别? 13
28. 堆和栈的区别? 13
39. 触发器分为事前触发和事后触发,有何区别? 13
40. 描述类中的构造函数和析构函数? 14
41. ASP.NET的Application、Session、Cookie、ViewState和Cache等变量的区别是什么? 14
42. C#中的验证控件有几种 14
43. 页面间的传值有哪几种方式 14
44. 表和视图的区别。 15
45. 请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?只能用在Windows项目里 15
46自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么 15
1. 接口与抽象类有什么区别
答:(1).接口用于规范,抽象类用于共性。
(2) 接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。
(3) 抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
(4) 抽象类可以提供某些方法的部分实现,接口不可以.
(5) 抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。
(6) 在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。
(7 )接口成员被定义为公共的,但抽象类的成员也可以是私有的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外接口不能包含字段、构造函数、析构函数、静态成员或常量。
2. String类与StringBuilder类有什么区别?
答:(1)StringBuilder表示值为可变字符序列,可以通过追加、移除、替换或插入字符而创建它后可以对它进行修改,而String 对象的值是该有序集合的内容,并且该值是不可变的。
(2 ) 如果串联固定数量的字符串,则 String 类更适合串联操作,如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作.
(3)大量字符连接的时候使用stringbuilder,stringbuilder的效率比string高很多。
String类有不可改变性。每次执行字符操作时,都会创建一个新的String对象。 StringBuilder 类解决了对字符串进行重复修改的过程中创建大量对象的问题。初始化一个StringBuilder 之后,它会自动申请一个默认的StringBuilder 容量(默认值是16),这个容量是由Capacity来控制的.并且允许,我们根据需要来控制Capacity的大小,也可以通过Length来获取或设置StringBuilder 的长度.
3. 在中类(class)与结构(struct)的异同:
答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化但可以直接使用它成员。
如何选择使用结构还是类:
a) 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
b) 结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
c) 在表现抽象和多级别的对象层次时,类是最好的选择
d) 大多数情况下该类型只是一些数据时,结构是最佳的选择
4. Override与重载有什么区别
答:其实很本质的区别就是看函数特征:覆写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这个子类的这个函数的时候就看不见父类(或超类)的函数了,它被覆盖掉了。
5. C#中接口和类的异同
接口和类都是类,不同的是,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
6. 请你说说.NET中类和结构的区别?
答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能声明有默认的构造函数,因为结构的副本是编译器创建和销毁的,所以不需要默 认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是引用类型,改变其变量的值会改变其原值。声明结构用 Struck关键字,申明类用class关键字,向方法传递结构时是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类 可以实现接口。
7. HashMap和Hashtable区别?
答:HashMap是Hashtable的轻量级实现,非线程安全的实现他们都实现了map接口,主要区别是HashMap键值可以为空null,效率可以高于Hashtable。
8. 值类型和引用类型的区别?
答:值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型。
9. Heap与stack的差别?
答:Heap是堆,空间是由手动操作分配和释放的,它有很大的自由存储区。
Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间为变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。
10. 谈谈final, finally, finalize的区别。
答:final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用 被回收对象的 该方法,可以覆盖该方法提供垃圾收集时 的其他资源回收,例如关闭文件等。
11. Collection 和 Collections的区别。
答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
12. sleep() 和 wait() 有什么区别?
答:sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)"醒来"的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
13. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法
1). using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间。
2).using别名。using + 别名 = 包括详细命名空间信息的具体的类型。当一个cs引用多个命名空间时,而有相同的类型时可以这样做。比如namespace1 和namespace2下面都有myClass类时,可以using class1 = namespace1.myClass;using class2 = namespace2.myClass。
3).using语句,定义一个范围,在范围结束时处理对象。
1)new 运算符 ,用于创建对象和调用构造函数。
(2)new 修饰符 ,用于向基类成员隐藏继承成员。
(3)new 约束 ,用于在泛型声明中约束可能用作类型参数的参数的类型。
14. OLEDBConnection 和SQLConnection 有什么区别?
答:OLEDBConnection,连接池将由提供程序自动处理,所以您不必自己进行管理。SQLConnection,连接池被隐式管理,但也提供选项允许您自己管理池。SQLConnection是SQL专用的,OLEDBConnection可以对其他数据库的连接,如Access。
15. C/S和B/S的区别,优缺点有哪些?
答:C/S是客户端/服务器端,C/S的程序通常也叫胖客户端,也就是一个程序的大部分功能,都在客户端实现,而服务器端只实现一小部分功能。通过这点不难看出,C/S的程序大部分在客户端实现,对于服务器端的压力相对小一些,服务器端可以节省一些。而且C/S的程序用窗口来做,个人认为开发效率上快一点。但C/S的程序一大弊端就是,必须要在客户端安装并部署程序才能运行,也就是用户必须得到客户端程序才可以运行。所以得考虑不同系统之间的安装与配置。
B/S是浏览器/服务器端,B/S的程序通常也叫瘦客户端,与C/S相反。B/S的程序大部分功能都要在服务器端实现,客户端只用来做辅助的控制功能。因为B/S的程序直接部署安装在服务器上。用户只需要有浏览器,并知道网址就可以使用程序。客户端不必做任何配置和安装,即可使用应用程序。而B/S也是有缺点的,首先B/S大部分功能都要在服务器端实现,对于服务器的要求就很高。服务器同时要应付用户访问与程序处理,所以服务器的配置必须能够应付。另外就是B/S的程序是浏览器中执行,所以B/S的程序操作客户端电脑的硬件,一般就得安装ActiveX等插件在客户端才可以操作。因此B/S的程序对于操作硬件,优势没有C/S的程序要好。
16. ArrayList,Array和string[]三着的区别?
答:Array 的容量是固定的,而 ArrayList 或 List 的容量可根据需要自动扩充。如果更改了 Capacity 属性的值,则可以自动进行内存重新分配和元素复制。
ArrayList 和 List 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。
使用 Synchronized 方法很容易创建 ArrayList 或 List 的同步版本。Array 将实现同步的任务留给了用户。
ArrayList 和 List 提供将只读和固定大小包装返回到集合的方法;而 Array 不提供。
另一方面,Array 提供了 ArrayList 和 List 所缺少的某些灵活性。例如:
可以设置 Array 的下限,但 ArrayList 或 List 的下限始终为零。
Array 可以具有多个维度,而 ArrayList 或 List 始终只是一维的。
特定类型(不包括 Object)的 Array 的性能优于 ArrayList,这是因为 ArrayList 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱操作。不过,在不需要重新分配时(即最初的容量十分接近列表的最大容量),List 的性能与同类型的数组十分相近。
需要数组的大多数情况都可以改为使用 ArrayList 或 List;它们更容易使用,并且一般与相同类型的数组具有相近的性能。
Array 位于 System 命名空间中;ArrayList 位于 System.Collections 命名空间中;List 位于System.Collections.Generic 命名空间中。
string[]只是字符串数组
17. ADO.net常用的对象有哪些?DataSet和DataReader的区别
答:
Connection, Command,
DataAdapter, DataSet,
DataReader, Configuration;
DateSet是数据在内存中的缓存,dataset是保存数据的数据结构,断开模式,而DataReader不承担保存数据的责任,需要自己手动关闭连接数据库,它只负责从数据源读取数据到本地而已,是只读向前的,它不是数据结构,而是网络通讯组件的高层封装。
18. web user control 和 cusrom control 区别和含义
答:用户控件是用ASP.NET代码创建的控件,就像标准的ASP.NET Web页面中创建控件一样,不同之处在于一旦创建了用户控件,就可以在多个ASP.NET页面中重用它们。自定义控件可以组合几个控件的功能、扩展现有控以及创建新的控件,完全包含在c#程序集中,不需要单独的ASP.NET代码,这意味着不需要在.ascx文件中组装UI,
19. 详细阐述cookie 、viewstate、session之间的区别,以及其各自工作原理
答:Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象,可以是多个页面,只要是在一次会话过程中。
viewstate获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。
cookie类由客户端应用程序用来检索有关通过 HTTP 响应接收的 Cookie 的信息,如果用户禁用cookie就不能使用,而且存放的大小有限。
20. Collection 和 Collections的区别
答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
21. error和exception有什么区别?
答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况
22. ADO和ADO.NET的区别
答:ADO以Recordset存储,而ADO.NET则以DataSet表示。Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线。由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范,而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。
23. HTTP1。0和HTTP1。1协议的区别
答:HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象.HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接).在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象!通俗点说,HTTP1.0规范中,一次连接只有一个请求和一个应答;而HTTP1.1规范中,一次连接有多个请求和多个应答。不管HTTP1.0还是HTTP1.1,请求和应答都是一一对应的
24. Java Script 类型与dot net 类型的区别
25. Java Script 与 Java 的区别?
26. SQL SERVER 的"存储过程"和"触发器"有什么不同之处?运行上有什么特点
答:触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。
触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。
触发器的优点如下:
触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。
触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点:
可以在单个存储过程中执行一系列 SQL 语句。
可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。
27. 描述Cookie和Session的作用,区别和各自的应用范围
答:都能保存信息。
cookie保存客户端信息,用户可以禁止使用cookie,而且大小比较小,保存的信息有限。
Session生存周期是一次会话,基于cookie,但不受cookie限制
28. C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
29. 简单描述包和dll异同
答:DLL(动态链接库)是经过编译的代码模块,它和可执行文件共同工作,为应用程序提供功能。程序包是用于C++Builder应用程序、IDE或是二者同时使用的特殊DLL。有两种程序包:运行时程序包和设计时程序包。运行时程序包提供程序执行时的功能,设计时程序包扩展了IDE的功能。
30. 简述parent和owner的区别
答:Parent属性是指构件的包容器,构件只能在此范围内显示和移动
Owner属性是指构件的所有者,它负责构件的创建和释放。如在上例中,系统默认窗体上所有构件的所有者是窗体,而窗体的所有者是Application。顺便指出,create方法应带有表示构件所有者的参数,如在上例中,构件所有者是窗体,即self。
Parent属性和Owner属性是运行阶段的属性,只能在运行阶段,通过代码设置。
31. 数据的实体完整性和参照完整性的区别
答:实体完整性约束是指构成关系主键的属性或属性集合不能为空。 参照完整性约束用于约束多个表之间的数据一致性
32. DIV和Table两种页面排版的优缺点
答:
a) 定位:
如我们的site针对的海量的访问,海量的数据,(当然cache问题这里不讨论)那么在 构架上通常会减少table使用量,尤其是大量的循环的时候。对于复杂的site来说,div+css有时候很难准确定义出我 们所表达的内容这时候table就是很好的选择。这也是开发前要考虑的问题,在要达到开发目的的同时保证所需要的成本。同样用div+css来实现一个结 构复杂的page时往往不如用一个table就能简单得搞定。
b) 特性:
table可以很容易建立起结构化的界面,缺点就是扩展性和可读性相对较差,扩展性差表现在维护和修正上面,table在表现上更加“严谨”,有局限性。div布局更加灵活,能简单也能够复杂,div的使用要配合专业的css参数来实现
c) 兼容:
我们常用的ie,ff浏览器对div css设置上非常挑剔,div要求我们严格css支持,而table可以不用考虑这么多。 table的严谨在不同浏览器中得到了很好的表现。
33. SQL、Access、Oracle三种数据库之间的区别?
答:Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。
Oracle是基于服务器的大型的数据库,
34. Asp和A的区别?
答:ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
35. 如何选择使用结构还是类:
1).堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
2).结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
3).在表现抽象和多级别的对象层次时,类是最好的选择
4).大多数情况下该类型只是一些数据时,结构是最佳的选择
36. OSI网络结构的七层模型及其核心思想是什么
第七层:应用层
· 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;
· 提供标准服务,比如虚拟终端、文件以及任务的传输和处理;
第六层:表示层
· 掩盖不同系统间的数据格式的不同性;
· 指定独立结构的数据传输格式;
· 数据的编码和解码;加密和解密;压缩和解压缩
第五层:会话层
· 管理用户会话和对话;
· 控制用户间逻辑连接的建立和挂断;
· 报告上一层发生的错误
第四层:传输层
· 管理网络中端到端的信息传送;
· 通过错误纠正和流控制机制提供可靠且有序的数据包传送;
· 提供面向无连接的数据包的传送;
第三层:网络层
· 定义网络设备间如何传输数据;
· 根据唯一的网络设备地址路由数据包;
· 提供流和拥塞控制以防止网络资源的损耗
第二层:数据链路层
· 定义操作通信连接的程序;
· 封装数据包为数据帧;
· 监测和纠正数据包传输错误
第一层:物理层
· 定义通过网络设备发送数据的物理方式;
· 作为网络媒介和设备间的接口;
定义光学、电气以及机械特性。
37. 进程和线程的区别?
答:一个进程内可以有多个线程 但是线程内不可能有进程 一个程序可以开多线程来完成不同或相同的工作
28. 堆和栈的区别?
答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小
39. 触发器分为事前触发和事后触发,有何区别?
答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值
40. 描述类中的构造函数和析构函数?
答:构造函数是在实例化对象时自动跳动的函数,与类同名,没有返回值,可以有参数,可以用于实例化对象时设置字段的值。析构函数与构造函数类似,与类同名,但前面多个”~”符号,没有参数,用来释放资源。
41. ASP.NET的Application、Session、Cookie、ViewState和Cache等变量的区别是什么?
答:
a) Application:能够包含任意大小的信息,在整个应用程序周期中有效,是面对所有应用程序用户的,保存于服务器端。
b) Session:能够保存相对少量的、简单的数据,一般在用户活动时间加上一端Timeout设定时间中有效(通常是20分钟Timeout),这是面向单个用户的信息,保存于服务器端。
c) Cookie:保存少量的、简单的数据,一般不允许超过4KB,使用期限可以进行灵活设定,面向单个用户,保存于浏览器中(也就是客户端)。
d) ViewState:保存少量的数据,在一个Web页面周期内有效,面向单个用户,保存于客户端。
e) Cache:缓存,大小任意,可以灵活设定可用时间,一般针对所有用户,保存于客户端。
42. C#中的验证控件有几种
答:
a) RequiredFieldValidator(必须字段验证);
b) CompareValidator(比较验证);
c) RangeValidator (范围验证);
d) RegularExpresionValidator(正则表达式);
e) ValidationSummary(验证总结);
f) CustomValidator(自定义验证)
43. 页面间的传值有哪几种方式
答:session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
44. 表和视图的区别。
答:表是真正的存在与数据库中(也就是硬件介质上)的数据组合,而视图只是简单的把一个或多个表或其他视图联系在一起的集合,也就是说视图只是固定了你的数据查询方式,但是并没有真正把数据保存起来,每次访问视图的时候,系统会自动根据视图的规则去组织筛选数据。表可以建立各种触发器,可以建立索引,可以建立主健、约束等。打个浅显的比喻,表是可执行文件,视图是快捷方式。
45. 请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?只能用在Windows项目里
void FindTextBox(Control ctl)
{
foreach (Control parent in ctl.Controls)
{
foreach (Control c in parent.Controls)
{
if (c.GetType().ToString() == "System.Windows.Forms.TextBox")
{
((TextBox)c).Text = String.Empty;
}
FindTextBox(parent);
}
}
}
调用:FindTextBox (this);
46自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么
答:用户控件(UserControl): 扩展名为*.ascx,跟*.aspx在结构上相似,是指页面中
加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用
户控件中使用 。
自定义控件,跟HtmlControl或WebControl相似,编译后可以添加引用到工具栏里
面,直接用鼠标拖动使用。
看情况使用,如果功能比较多,会用自定义控件。
展开阅读全文