NET面试题.docx
《NET面试题.docx》由会员分享,可在线阅读,更多相关《NET面试题.docx(15页珍藏版)》请在冰豆网上搜索。
![NET面试题.docx](https://file1.bdocx.com/fileroot1/2022-12/7/185fc07c-7eee-41ce-87da-968eb9a0a852/185fc07c-7eee-41ce-87da-968eb9a0a8521.gif)
NET面试题
1.什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
应用程序域提供安全而通用的处理单元,公共语言运行库可使用它来提供应用程序之间的隔离。
您可以在具有同等隔离级别(存在于单独的进程中)的单个进程中运行几个应用程序域,而不会造成进程间调用或进程间切换等方面的额外开销。
在一个进程内运行多个应用程序的能力显著增强了服务器的可伸缩性。
RTTI:
类型识别系统装箱是从值类型到引用类型的转换,拆箱是从引用类型到值类型的转换
2.列举一下你所了解的XML技术及其应用
XML的应用可分为四类:
1.可根据客户需要与不同的数据源进行交互。
2.可将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。
3.可将同一数据以不同面貌展现给不同的用户。
4.网络代理可对所取得的信息进行编辑、增减以适应个人用户的需要
具体热门应用有:
ajax技术,WebServices技术。
3.值类型和引用类型的区别?
写出C#的样例代码。
值类型:
存放的是实际的值,在堆栈中,大多数数据类型、枚举、结构体都是值类型,如:
inti=2;
引用类型:
存放的是地址,在堆中,接口、类、字符串、数组都是引用类型,如:
Students=newStudent();
4.ADO.net中常用的对象有哪些?
分别描述一下。
Connection:
连接对象.传递连接字符串,以连接数据库。
Command:
命令对象传递T-sql语句或者存储过程,以执行对数据库的查询与操作。
DataAdpater:
适配器对象管理Command对像。
主要用于查询或更新数据。
DataReader:
数据读取器对象快速、以向前、不断开连接的情况下读取数据。
DataSet:
数据集对象从数据库中取出数据,保存到内存,即可断开连接。
5.如何理解委托?
委托实际上是一种函数指针,指向函数的入口地址。
可以动态地将与委托签名(返回类型,参数类型,参数个数)相同的方法赋给一个委托实例,以实现动态调用方法。
6.C#中的接口和类有什么异同。
接口里只能有方法、属性、索引器声明,不能有任何实现。
其方法的实现,必须由类来完成。
其作用是广泛接收实现过它的类的实例,以实现子类的灵活替换。
类是对一类事物的描述。
有属性,有方法,有成员。
方法可以有抽像方法,虚方法。
抽像方法也是只有声明,没有实现,必段由继承它的子类来重写。
虚方法是实现了的方法,只是,在子类,根据需要可重写,也可以不重写。
7.net中读写数据库需要用到哪些类?
他们的作用
8.UDP连接和TCP连接的异同。
TCP协议是面向连接的,每个数据包的传输过程是:
先建立链路、数据传输、然后清除链路。
数据包不包含目的地址。
受端和发端不但顺序一致,而且内容相同。
它的可靠性高,
UDP协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。
它的效率比较高
9.ASP.net的身份验证方式有哪些?
分别是什么原理?
10.什么是code-Behind技术。
就是代码隐藏,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。
比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。
11.什么是SOAP,有哪些应用。
12.常用的调用webservice方法有哪些?
13.私有程序集与共享程序集有什么区别?
14.请解释进程与线程的区别?
进程与程序的区别?
15.CLR与IL分别是什么含义?
16.请解释ASP。
NET中以什么方式进行数据验证
可以使用验证控件进行客户端和服务器端验证
也可以使用传统方式:
用客户端脚本在客户端验证,用服务器语言在服务器端验证
17.C#中的接口和类有什么异同。
18.net中读写数据库需要用到哪些类?
他们的作用
ASP.NET身份验证模式包括Windows、Forms(窗体)、Passport(护照)和None(无)。
?
Windows身份验证—常结合应用程序自定义身份验证使用使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识。
IIS提供以下几种身份验证机制:
?
Passport身份验证。
使用这种身份验证模式时,ASP.NET使用MicrosoftPassport的集中式身份验证服务,该服务为成员站点提供单一登录和核心配置文件服务。
由于访问新的受保护资源或站点时不再需要登录。
ASP.NET为MicrosoftPassport软件开发包(SDK)所提供的功能提供了一个方便的包装(Wrapper)。
此SDK必须安装在WEB服务器上。
?
Form窗体身份验证—常用。
这种验证方式使用客户端重定向功能,将未通过身份验证的用户转发到特定的登录窗体,要求用户输入其凭据信息(通常是用户名和密码)。
这些凭据信息被验证后,系统生成一个身份验证票证(ticket)并将其返回客户端。
身份验证票证可在用户的会话期间维护用户的身份标识信息,以及用户所属的角色列表(可选。
?
None。
使用这种身份验证模式,表示你不希望对用户进行验证,或是采用自定义的身份验证协议。
19.UDP连接和TCP连接的异同。
20.ASP.net的身份验证方式有哪些?
分别是什么原理?
21.new有几种用法
22.如何把一个array复制到arrayList里
23.datagrid.datasouse可以连接什么数据源[dataset,datatable,dataview]
24.概述反射和序列化
25.概述o/rmapping的原理
26.类成员有()种可访问方式
27.用sealed修饰的类有什么特点
28.列举ADO.NET中的五个主要对象,并简单描述
Connection:
连接对象.传递连接字符串,以连接数据库。
Command:
命令对象传递T-sql语句或者存储过程,以执行对数据库的查询与操作。
DataAdpater:
适配器对象管理Command对像。
主要用于查询或更新数据。
DataReader:
数据读取器对象快速、以向前、不断开连接的情况下读取数据。
DataSet:
数据集对象从数据库中取出数据,保存到内存,即可断开连接。
29.执行下面代码后:
30.C#中,stringstr=null与stringstr="",请尽量用文字说明区别。
(要点:
说明详细的内存空间分配)
31.详述.NET里class和struct的异同!
32.概述.NET里对remoting和webservice两项技术的理解和实际中的应用。
33.什么是code-behind技术
34.概述三层结构体系
35.如何实现MVC模式,举例说明!
36.面向对象的思想主要包括什么?
37.什么是ASP.net中的用户控件
用户控件――自定义、可重用的控件,和WebForm很相似,以WebForm为容器运行
38.进程和线程分别怎么理解?
39.什么是code-Behind技术。
40.net中读写XML的类都归属于哪些命名空间?
41.解释一下UDDI、WSDL的意义及其作用。
42.什么是SOAP,有哪些应用。
43.如何部署一个ASP.net页面。
1.网站?
部署—>指定目录。
这里目的在于:
生成aspx以及把cs文件编译为.dll文件放到bin目录下面和Web.config
2.通过IIS.建立一个虚拟目录,指向到这个目录。
或者直接把这个目录copy到wwwroot下面。
然后,在IIS中的默认站点中,找到这个目录右击,然后点创建应用程序即可
44.如何理解.net中的垃圾回收机制。
45.常用的调用webservice方法有哪些?
46.c#中的三元运算符是__表达式?
结果1(表达式为true时执行):
结果2(表达式为false时执行)__
47.当整数a赋值给一个object对象时,整数a将会被_____?
48.类成员有____种可访问形式?
49.publicstaticconstintA=1;这段代码有错误么?
是什么?
50.用sealed修饰的类有什么特点?
51.在A中所有的自定义用户控件都必须继承自________?
52.在.Net托管代码中我们不用担心内存漏洞,这是因为有了__?
53.在.Net中,类System.Web.UI.Page可以被继承么?
54.从数据库读取记录,你可能用到的方法有:
A.ExecuteNonQueryB.ExecuteScalarC.FillD.ExecuteReader
55.以下关于ref和out的描述哪些项是正确的?
(多选)()
A.使用ref参数,传递到ref参数的参数必须最先初始化。
B.使用out参数,传递到out参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
56.在对SQLServer数据库操作时应选用()。
a)SQLServer.NETFramework数据提供程序;
b)OLEDB.NETFramework数据提供程序;
c)ODBC.NETFramework数据提供程序;
d)Oracle.NETFramework数据提供程序;
57.下列选项中,()是引用类型。
a)enum类型b)struct类型c)string类型d)int类型
58.关于ASP.NET中的代码隐藏文件的描述正确的是()
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
59.以下描述错误的是()
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用new修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
60.C#的数据类型有()
a)值类型和调用类型;b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;
6.下列描述错误的是()
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
61.在DOM中,装载一个XML文档的方法()
a)save方法b)load方法c)loadXML方法d)send方法
62.下列关于构造函数的描述正确的是()
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
63.int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[2][2]的值是()。
a)9b)2c)6d)越界
64.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;b)方法、属性信息、属性;c)索引器和字段;d)事件和字段;
65.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。
服务器控件有两种类型,它们是()
a)HTML控件和Web控件b)HTML控件和XML控件c)XML控件和Web控件d)HTML控件和IIS控件
66.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是()。
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
67.下列ASP.NET语句()正确地创建了一个与SQLServer2000数据库的连接。
a)SqlConnectioncon1=newConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);
b)SqlConnectioncon1=newSqlConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);
c)SqlConnectioncon1=newSqlConnection(DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB);
d)SqlConnectioncon1=newOleDbConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);
68.Winform中,关于ToolBar控件的属性和事件的描述不正确的是()。
a)Buttons属性表示ToolBar控件的所有工具栏按钮
b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键
d)ButtonClick事件在用户单击工具栏任何地方时都会触发
69.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(),必要时还要设置参数尺寸。
a)大小;b)上限;c)初始值;d)类型;
70.如果将窗体的FormBoderStyle设置为None,则()。
a)窗体没有边框并不能调整大小;b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小;d)窗体是透明的;
71.如果要将窗体设置为透明的,则()
a)要将FormBoderStyle属性设置为None;b)要将Opacity属性设置为小于100%得值;
c)要将locked属性设置为True;d)要将Enabled属性设置为True;
72.下面描述错误的是()。
a)窗体也是控件;b)窗体也是类;c)控件是从窗体继承来的;d)窗体的父类是控件类;
73.要对注册表进行操作则必须包含()。
a)System.ComponentModel命名空间;b)System.Collections命名空间;
c)System.Threading命名空间;d)Microsoft.Win32命名空间;
74.要创建多文档应用程序,需要将窗体的()属性设为true。
a)DrawGrid;b)ShowInTaskbar;c)Enabled;d)IsMdiContainer;
75.如果设treeView1=newTreeView(),则treeView1.Nodes.Add("根节点")返回的是一个()类型的值。
a)TreeNode;b)int;c)string;d)TreeView;
76.下面关于XML的描述错误的是()。
a)XML提供一种描述结构化数据的方法;
b)XML是一种简单、与平台无关并被广泛采用的标准;
c)XML文档可承载各种信息;
d)XML只是为了生成结构化文档;
77.装箱、拆箱操作发生在:
()
A.类与对象之间B.对象与对象之间
C.引用类型与值类型之间D.引用类型与引用类型之间
78.用户类若想支持Foreach语句需要实现的接口是:
()
A.IEnumerableB.IEnumeratorC.ICollectionD.ICollectData
79..NetFramework通过什么与COM组件进行交互操作?
()
A.SideBySideB.WebServiceC.InteropD.PInvoke
80..Net依靠以下哪一项技术解决COM存在的DllHell问题的?
()
A.SideBySideB.InteropC.PInvokeD.COM+
81.装箱与拆箱操作是否是互逆的操作?
()
A.是B.否
82.以下哪个是可以变长的数组?
()
A.ArrayB.string[]C.string[N]D.ArrayList
83.用户自定义异常类需要从以下哪个类继承:
()
A.ExceptionB.CustomExceptionC.ApplicationExceptionD.BaseException
84..以下代码段中能否编译通过?
请给出理由。
try
{}
catch(FileNotFoundExceptione1)
{}
catch(Exceptione2)
{}
catch(IOExceptione3)
{}
catch
{}
85.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?
(多选)()
A.CloseB.DisposeC.FinalizeD.usingE.Quit
86.Net依赖以下哪项技术实现跨语言互用性?
()
A.CLRB.CTSC.CLSD.CTT
87.请问:
String类与StringBuilder类有什么区别?
为什么在.Net类库中要同时存在这2个类?
(简答)
88.以下哪个类是int的基类?
()
A.Int32B.ObjectC.ValueTypeD.Int16
89.以下哪些可以作为接口成员?
(多选)()
A.方法B.属性C.字段D.事件E.索引器F.构造函数G.析构函数
90.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?
()
A.publicB.protectedC.internalD.protectedinternal
91.classClass1
{
privatestaticintcount=0;
staticClass1()
{
count++;
}
publicClass1()
{
count++;
}
}
Class1o1=newClass1();
Class1o2=newClass1();
请问,o1.Count的值是多少?
()
A.1B.2C.3D.4
92.abstractclassBaseClass
{
publicvirtualvoidMethodA()
{
}
publicvirtualvoidMethodB()
{
}
}
classClass1:
BaseClass
{
publicvoidMethodA(stringarg)
{
}
publicoverridevoidMethodB()
{
}
}
classClass2:
Class1
{
newpublicvoidMethodB()
{
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
Class2o=newClass2();
Console.WriteLine(o.MethodA());
}
}
请问,o.MethodA调用的是:
()
A.BaseClass.MethodAB.Class2.MethodA
C.Class1.MethodAD.都不是
93.请叙述属性与索引器的区别。
94.请叙述const与readonly的区别。
95.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。
您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。
您想要花最小的代价完成这些目标,您应该怎么做?
(多选)()
A.在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。
B.在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。
C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。
D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。
E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET代码错误。
F.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NETHTTP错误。
96.您的公司有一个DBServer,名为AllWin,其上装了MSSQLSERVER2000。
现在需要您写一个数据库连接字符串,用以连接AllWin上SQLSERVER中的一个名为PubBase实例的Test库。
请问,应该选择下面哪一个字符串?
()
A.“Server=AllWin;DataSource=PubBase;InitialCatalog=Test;IntegratedSecurity=SSPI”
B.“Server=AllWin;DataSource=PubBase;Database=Test;IntegratedSecurity=SSPI”
C.“DataSource=AllWin\PubBase;InitialCategory=PubBase;IntegratedSecurity=SSPI”
D.“DataSource=AllWin\PubBase;Database=Test;IntegratedSecurity=SSPI”
97.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。
产品数据被存放于一个名为PubBase的MicrosoftSQLServer数据库。
每个产品的主键