NET面试题及答案.docx
《NET面试题及答案.docx》由会员分享,可在线阅读,更多相关《NET面试题及答案.docx(42页珍藏版)》请在冰点文库上搜索。
NET面试题及答案
updateBasic_RolesetloginInitialPage=''whereloginInitialPageisnull
1.new有几种用法
第一种:
newClass();
第二种:
覆盖方法
publicnewXXXX(){}
第三种:
new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach(objectoinarray)arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源[dataset,datatable,dataview]
dataset,datatable,dataview,IList
4.概述反射和序列化
反射:
程序集包含模块,而模块包含类型,类型又包含成员。
反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
然后,可以调用类型的方法或访问其字段和属性
序列化:
序列化是将对象转换为容易传输的格式的过程。
例如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。
在另一端,反序列化将从该流重新构造对象。
5.概述o/rmapping的原理
利用反射,配置将类于数据库表映射
6.类成员有()种可访问形式
可访问形式?
不懂。
可访问性:
public,protected,private,internal
7.用sealed修饰的类有什么特点
sealed修饰符用于防止从所修饰的类派生出其它类。
如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。
具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,trans,dataset...
9.执行下面代码后:
StringstrTemp="abcdefg某某某";
IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length;
Intj=strTemp.Length;
问:
i=(14);j=(11)
i=(14);j=(11)中文两个字节
10.C#中,stringstr=null与stringstr="",请尽量用文字说明区别。
(要点:
说明详细的内存空间分配)
stringstr=""分配空间
11.详述.NET里class和struct的异同!
class:
放在?
struct放在?
struct值传递
类与结构有很多相似之处:
结构可以实现接口,并且可以具有与类相同的成员类型。
然而,结构在几个重要方面不同于类:
结构为值类型而不是引用类型,并且结构不支持继承。
结构的值存储在“在堆栈上”或“内联”。
细心的程序员有时可以通过聪明地使用结构来增强性能。
12.概述.NET里对remoting和webservice两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术
aspxandcs
14.概述三层结构体系
web/business/dataaccess
如何实现MVC模式,举例说明!
web/business/dataaccess
----------------------------------------------------------------------------------------------------------
1.面向对象的思想主要包括什么?
答:
这个题范围太广,不知道说什么.
2.什么是ASP.net中的用户控件
答:
用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
3.什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
答:
装箱就是把值类型转成引用类型,从MSIL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
4.列举一下你所了解的XML技术及其应用
答:
XML可是好东西,保存配置,站与站之间的交流,WEBSERVICE都要用它.
5.值类型和引用类型的区别?
写出C#的样例代码。
答:
结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.
6.ADO.net中常用的对象有哪些?
分别描述一下。
答:
connectioncommandsqladapterdatasetdatatabledataview等等.写不完了.
7.如何理解委托?
答:
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于C++函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
有关更多信息,请参见协变和逆变。
C#2.0版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
8.C#中的接口和类有什么异同。
答:
这个异同可多了,要说清楚还真不容易.
9.。
net中读写数据库需要用到哪些类?
他们的作用
答:
这个类自已可以写的啊,你是指基类吗?
那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP连接和TCP连接的异同。
答:
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
11.ASP.net的身份验证方式有哪些?
分别是什么原理?
答:
form认证,windows集成认证等,原理不清楚.
12.进程和线程分别怎么理解?
答:
进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
13.什么是code-Behind技术。
答:
代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
14.活动目录的作用。
答:
这个不明白.请明白的补充一下.
中读写XML的类都归属于哪些命名空间?
答:
System.Xml
我自已写的就不一定了,嘿嘿.
16.解释一下UDDI、WSDL的意义及其作用。
答:
什么东西?
17.什么是SOAP,有哪些应用。
答:
SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。
使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。
这种相互通信采用的是XML格式的消息,具体请看:
18.如何部署一个ASP.net页面。
答:
随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好.
19.如何理解.net中的垃圾回收机制。
答:
GC?
对象创建了总要清除啊,不然内存哪够用?
20.常用的调用webservice方法有哪些?
答:
调用就调用,还有很多方法吗?
1
(1)面向对象的语言具有__继承性_、_封装性_、_多态性。
(2)能用foreach遍历访问的对象需要实现_IEnumerable接口或声明_GetEnumerator方法的类型。
1.c#中的三元运算符是__?
:
__
2.当整数a赋值给一个object对象时,整数a将会被__装箱___?
3.类成员有__3__种可访问形式?
4.publicstaticconstintA=1;这段代码有错误么?
是什么?
const成员都是static所以应该去掉static
5.floatf=-123.567F;
inti=(int)f;
i的值现在是_-123____?
6.利用operator声明且仅声明了==,有什么错误么?
要同时修改Equale和GetHash()?
重载了"=="就必须重载"!
="
7.委托声明的关键字是___delegate___?
8.用sealed修饰的类有什么特点?
不可被继承
9.在A中所有的自定义用户控件都必须继承自_System.Web.UI.UserControl_______?
10.在.Net中所有可序列化的类都被标记为__[serializable]___?
“序列化”可被定义为将对象的状态存储到存储媒介中的过程。
要将该类的实例序列化为到文件中?
.NETFrameWork提供了两种方法:
1、XML序列化 2、二进制序列化
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_gC__?
12.下面的代码中有什么错误吗?
_abstractoverride是不可以一起修饰______
usingSystem;
classA
{
publicvirtualvoidF(){
Console.WriteLine("A.F");
}
}
abstractclassB:
A
{
publicabstractoverridevoidF();
}
13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以or不可以)从T派生出新的类,_不可以_(可以or不可以)直接创建T的任何实例。
(1)实例构造函数类构造函数可通过base关键字来调用基类的构造函数,例如:
publicCylinder(doubleradius,doubleheight):
base(radius,height)
{
}
类构造函数也可通过关键字this调用同一个类的另一个构造函数,例如:
publicPoint():
this(0,20)
{
}
(2)私有构造函数
私有构造函数是一种特殊的实例构造函数。
它通常用在只包含静态成员的类中。
如果类具有一个或多个私有构造函数而没有公共构造函数,则不允许其他类(除了嵌套类)创建该类的实例。
例如:
classNLog
{
//PrivateConstructor:
privateNLog(){}
publicstaticdoublee=2.71828;
}
声明空构造函数可阻止自动生成默认构造函数。
注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。
但是,通常显式地使用private(私有)修饰符来清楚地表明该类不能被实例化。
14.下面这段代码有错误么?
case():
不行default;
switch(i){
case():
CaseZero();
break;
case1:
CaseOne();
break;
case2:
dufault;
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page可以被继承么?
可以
2.不定项选择:
(1)以下叙述正确的是:
BC
A.接口中可以有虚方法。
B.一个类可以实现多个接口。
C.接口不能被实例化。
D.接口中可以包含已实现的方法。
(2)从数据库读取记录,你可能用到的方法有:
BCD
A.ExecuteNonQueryB.ExecuteScalarC.FillD.ExecuteReader
2.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?
(多选)(ABC)
A.CloseB.DisposeC.Finalize
D.usingE.Quit
数组的复杂使用:
int[,,]number=newint[4,3,2]{{{1,2},{2,3},{3,4}},{{4,5},{5,6},{6,7}},{{7,8},{8,9},{9,10}},{{10,11},{11,12},{12,13}}};
for(inti=number.GetLowerBound(0);i<=number.GetUpperBound(0);i++)
{
for(intj=number.GetLowerBound
(1);j<=number.GetUpperBound
(1);j++)
{
for(intk=number.GetLowerBound
(2);k<=number.GetUpperBound
(2);k++)
{
Console.WriteLine("number[{0},{1},{2}]={3}",i,j,k,number[i,j,k]);
}
}
}
3.以下关于ref和out的描述哪些项是正确的?
(多选)(ACD)
A.使用ref参数,传递到ref参数的参数必须最先初始化。
B.使用out参数,传递到out参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
1.在对SQLServer数据库操作时应选用(A)。
a)SQLServer.NETFramework数据提供程序;
b)OLEDB.NETFramework数据提供程序;
c)ODBC.NETFramework数据提供程序;
d)Oracle.NETFramework数据提供程序;
2.下列选项中,(C)是引用类型。
a)enum类型b)struct类型c)string类型d)int类型
3.关于ASP.NET中的代码隐藏文件的描述正确的是(C)
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
4.以下描述错误的是(A)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用new修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(A)
a)值类型和调用类型;b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型;
6.下列描述错误的是(D)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法(D)
a)save方法b)load方法c)loadXML方法d)send方法
8.下列关于构造函数的描述正确的是(C)
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
9.以下是一些C#中的枚举型的定义,其中错误的用法有()
a)publicenumvar1{Mike=100,Nike=102,Jike}
b)publicenumvar1{Mike=100,Nike,Jike}
c)publicenumvar1{Mike=-1,Nike,Jike}
d)publicenumvar1{Mike,Nike,Jike}
10.int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[2][2]的值是(D)。
a)9b)2c)6d)越界
11.接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;b)方法、属性信息、属性;c)索引器和字段;d)事件和字段;
12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。
服务器控件有两种类型,它们是(A)
a)HTML控件和Web控件b)HTML控件和XML控件c)XML控件和Web控件d)HTML控件和IIS控件
13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为(D)
a)
b)
c)
d)以上皆非
14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
15.下列ASP.NET语句(b)正确地创建了一个与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”);
16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(D)。
a)Buttons属性表示ToolBar控件的所有工具栏按钮
b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键
d)ButtonClick事件在用户单击工具栏任何地方时都会触发
17.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(B),必要时还要设置参数尺寸。
a)大小;b)上限;c)初始值;d)类型;
18.如果将窗体的FormBoderStyle设置为None,则(B)。
a)窗体没有边框并不能调整大小;b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小;d)窗体是透明的;
19.如果要将窗体设置为透明的,则(B)
a)要将FormBoderStyle属性设置为None;b)要将Opacity属性设置为小于100%得值;
c)要将locked属性设置为True;d)要将Enabled属性设置为True;
20.下列关于C#中索引器理解正确的是(B/C)
a)索引器的参数必须是两个或两个以上b)索引器的参数类型必须是整数型
c)索引器没有名字d)以上皆非
21.下面描述错误的是(C/D)。
a)窗体也是控件;b)窗体也是类;c)控件是从窗体继承来的;d)窗体的父类是控件类;
22.要对注册表进行操作则必须包含(D)。
a)System.ComponentModel命名空间;b)System.Collections命名空间;
c)System.Threading命名空间;d)Microsoft.Win32命名空间;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
23.要创建多文档应用程序,需要将窗体的(D)属性设为true。
a)DrawGrid;b)ShowInTaskbar;c)Enabled;d)IsMdiContainer;
24.如果设treeView1=newTreeView(),则treeView1.Nodes.Add("根节点")返回的是一个()类型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面关于XML的描述错误的是(D)。
a)XML提供一种描述结构化数据的方法;
b)XML是一种简单、与平台无关并被广泛采用的标准;
c)XML文档可承载各种信息;
d)XML只是为了生成结构化文档;
1.装箱、拆箱操作发生在:
(C)
A.类与对象之间B.对象与对象之间
C.引用类型与值类型之间D.引用类型与引用类型之间
2.用户类若想支持Foreach语句需要实现的接口是:
(A)
A.IEnumerableB.IEnumerator
C.ICollec