C#Net经典面试题.docx

上传人:b****6 文档编号:3613328 上传时间:2022-11-24 格式:DOCX 页数:14 大小:30.75KB
下载 相关 举报
C#Net经典面试题.docx_第1页
第1页 / 共14页
C#Net经典面试题.docx_第2页
第2页 / 共14页
C#Net经典面试题.docx_第3页
第3页 / 共14页
C#Net经典面试题.docx_第4页
第4页 / 共14页
C#Net经典面试题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C#Net经典面试题.docx

《C#Net经典面试题.docx》由会员分享,可在线阅读,更多相关《C#Net经典面试题.docx(14页珍藏版)》请在冰豆网上搜索。

C#Net经典面试题.docx

C#Net经典面试题

目录

目录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.webusercontrol和cusromcontrol区别和含义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.JavaScript类型与dotnet类型的区别9

25.JavaScript与Java的区别?

9

26.SQLSERVER的"存储过程"和"触发器"有什么不同之处?

运行上有什么特点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类时,可以usingclass1=namespace1.myClass;usingclass2=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.webusercontrol和cusromcontrol区别和含义

答:

用户控件是用ASP.NET代码创建的控件,就像标准的ASP.NETWeb页面中创建控件一样,不同之处在于一旦创建了用户控件,就可以在多个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.JavaScript类型与dotnet类型的区别

25.JavaScript与Java的区别?

26.SQLSERVER的"存储过程"和"触发器"有什么不同之处?

运行上有什么特点

答:

触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:

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”。

protectedinternal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。

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就能简单

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1