面试题锦集文档格式.docx
《面试题锦集文档格式.docx》由会员分享,可在线阅读,更多相关《面试题锦集文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
Web自定义控件是编译的代码,这使得Web自定义控件更易于使用但更难于创建;
Web自定义控件必须使用代码来创建。
一旦创建该控件,那么,您就可以将其添加到工具箱中,并在具有完全“属性”窗口支持和ASP.NET服务器控件的其他所有设计时功能的可视化设计器中显示该控件。
此外,还可以在全局程序集缓存中安装Web自定义控件的单个副本,并在应用程序之间共享该副本,这将使维护变得更容易。
有关更多信息,请参阅全局程序集缓存。
如果您的控件包含大量静态布局,用户控件则可能是较佳的选择。
如果您的控件主要是动态生成的(例如数据绑定表的行、树视图的节点或选项卡(TabControl)控件的选项卡),自定义控件则可能是较佳的选择。
下表概述了这两种类型之间的主要区别:
Web用户控件
1.难于创建
2.为使用可视化设计工具的使用者提供有限的支持
3.每个应用程序中需要控件的一个单独副本
4.不能添加到VisualStudio中的工具箱
5.适用于静态布局
Web自定义控件
1.易于创建
2.为使用者提供完全的可视化设计工具支持
3.仅在全局程序集缓存中需要控件的单个副本
4.可以添加到VisualStudio中的工具箱
5.适用于动态布局
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
这个需要当前描述了..东西太多..打字要打死了..找个比较简单的说说吧!
CTS:
公共类型系统.主要是为了语言之间的进行标准化处理.
CLS:
公共语言规范.主要是确保代码可以在任何语言中访问的最小标准集体
CLR:
公共语言运行时.主要是管理代码..处理,加载代码,以及所有服务的代码
4.列举一下你所了解的XML技术及其应用
xml用于配置,用于保存静态数据类型.接触XML最多的是webServices..和config
5.值类型和引用类型的区别?
写出C#的样例代码。
值类型是在内存中保存,引用类型是在内存中保存一副本.你在内存中可以有多个某种引用对象..但是值类型始终只有一个.
最常见的值类型就是static,struct;
例如:
staticintaa=1;
//值类型
如果多个用户改变aa的值则,aa的值会以最后一个修改的记录为准.其他人的修改则会被冲掉.
引用类型,最能说明问题的就是实例化..你new出来的对象单独分配一个独立的内存..所以值不会互相冲突/
数据成员可以分静态变量、非静态变量两种.
静态成员:
静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.
非成静态员:
所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中..
一个类中也可以包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数..
对于winApp来说,静态成员对于程序员本身省了很多事,而且因为静态成员驻留内存,在方法与方法之间传递共享数据的时候,所以静态成员成了我的首选..但是不要因为方便,大量使用,尤其是在内存紧张或者
用静态方法操作一些共享值的时候.或者要写多用户系统的时候,要慎之又慎.比如:
staticintid=0;
sql="
select*fromtablewhereid="
+id;
l
6.ADO.net中常用的对象有哪些?
分别描述一下。
Connection数据库连接对象
Command数据库命令
DataReader数据读取器
DataSet数据集
7.如何理解委托?
委托的概念,最好的说明就是事件.因为事件使用的就是委托.例如:
this.Load+=newSystem.EventHandler(this.Page_Load);
这个就是使用了一个委托.
具体的用法请参考.我以前的帖子,设计猫鼠联动..
8.C#中的接口和类有什么异同。
类是方法功能的实现和集合,接口是规范类.约束类.
参考我的文章:
9.。
net中读写数据库需要用到哪些类?
看第六题..答案差不多
10.UDP连接和TCP连接的异同。
这个说不清楚.
11.ASP.net的身份验证方式有哪些?
window验证:
为每个用户开启window帐号,验证其身份.安全性较高.
forms验证:
为每个登陆用户写入一个身份验证票据..在web使用最广的验证方式..灵活方便.
12.进程和线程分别怎么理解?
这个是新人最容易迷惑的东西..
进程:
Process
13.什么是code-Behind技术。
新建一个VS.NET下的项目..看到ASPX,RESX和CS三个后缀的文件了吗?
?
这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.
14.活动目录的作用。
活动目录是window2000的最重要的功能.可以将用户信息全部集成起来,登陆以后可以访问多个不同的网络服务..没深入研究过.
查看一下帖子:
中读写XML的类都归属于哪些命名空间?
System.XML类
16.解释一下UDDI、WSDL的意义及其作用。
解释不清楚了..又是一大块..
17.什么是SOAP,有哪些应用。
simpleobjectaccessprotocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范
是微软大力推广的WebService使用的协议..
18.如何部署一个ASP.net页面。
不清楚问的什么意思...如果非要回答的话,就写一个带.aspx的后缀文件..然后安装IIS和FrameWork环境..浏览就好了.
19.如何理解.net中的垃圾回收机制。
垃圾回收体制如下:
如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
20.常用的调用webservice方法有哪些?
我一般用的是WSDL..或者web引用..
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)
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模式,举例说明!
----------------------------------------------------------------------------------------------------------
答:
这个题范围太广,不知道说什么.
用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
装箱就是把值类型转成引用类型,从MSIL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
XML可是好东西,保存配置,站与站之间的交流,WEBSERVICE都要用它.
结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.
connectioncommandsqladapterdatasetdatatabledataview等等.写不完了.
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于C++函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;
例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
有关更多信息,请参见协变和逆变。
C#2.0版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
这个异同可多了,要说清楚还真不容易.
这个类自已可以写的啊,你是指基类吗?
那configuration,sqlconnection,sqlcommand等都要用到.
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
form认证,windows集成认证等,原理不清楚.
进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当
ASP.NET面试的题目
1。
请简要写出你对C#及ASP的认识。
2。
怎么获得文件的当前路径(代码)
3。
请使用ADO。
NET写出数据库连接开始事务处理,即数据库连接(代码)
4。
在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。
工资等字段。
若要保证工资字段的取值不低于800元,最合适的实现方法是:
A。
在创建工资表时为”工资“字段建立缺省
B。
在创建工资表时为”工资“字段建立检查约束
C。
在工资表建立一个触发器
D。
为工资表数据输入编写一个程序进行控制
5。
没有关键码序列(Q。
G。
M。
Z。
N。
P。
X。
H。
Y。
S。
L。
T。
K。
E)
采用二路归并排序法进行排序,请写出第二趟归并后的结果?
6。
创建一个新文本文件并向其写入一个字符串(代码)
7。
请使用正则表达式验证电子邮件地址的合法性(代码)
8。
如何设定DATAGRID中模板列里下拉列表默然值,如何在编辑时,让其绑定另一个表的数据并自动讲当前值设为默认值
9。
上机测试题目:
用户管理中,用户验证,用户添加,用户删除功能,采用ACCESS数据库
(时间30分钟)
一、求2003年所有没有降雨的日期
结果集:
日期
表名:
t_rain
降雨记录
表结构:
fstartTimedatetime
(有时间信息)
降雨开始时间
fendTimedatetime降雨结束时间
(可能跨日的)
二、问答题
1.三只猫三分钟内可以捉三只老鼠,一百只猫需要多久才能捉到一百只老鼠?
2.有两枚硬币,共值一元五角,其中一枚不是五角的硬币,请问两枚硬币的面值各是多少?
3.一个人购物共付了六元,零食比笔芯多五元,笔芯价格是多少?
4.有两人在路上走,年轻的是年长的儿子,但年长的不是年轻的父亲,年长的是谁?
5.一立方尺的洞里有多少垃圾?
6.一个男人和他遗孀的妹妹结婚是否合法?
7.一只猴子跌进三十尺深的井里,它每天朝上蹿三尺,但都滑下两尺,依照这个速度,猴子多少天后会蹿出井外?
8.抽屉里有黑白袜子各十只,如果你在黑暗中伸手入抽屉,最少要取出几只才一定会有一双颜色相同?
9.有三个苹果,你拿了两个,你共有多少个?
10.有人要赶火车,只有两分钟时间,但要走两里。
如果第一里的速度是每小时三十里,第二里的速度应该是多少才能赶上这班火车?
三、分析:
(除了答案,还需阐明思路):
1、5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。
他们决定这么分:
1。
抽签决定自己的号码(1,2,3,4,5)
2。
首先,由1号提出分配方案,然后大家5人进行表决,当且仅当半数和超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
3。
如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当半数和超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
4。
依次类推......
问题:
第一个海盗提出怎样的分配方案才能够使自己的收益最大化
条件:
每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择。
5.有一张表,表名:
Test
idint
namevarchar(20)
有以下数据:
[id]
[name]
1
aaa
2
bbb
3
4
ccc
要求写一个查询语句,只显示[name]有重复的数据,没有重复的不显示出来。
传入某个属性的set方法的隐含参数的名称是什么?
value,它的类型和属性所声名的类型相同。
如何在C#中实现继承?
在类名后加上一个冒号,再加上基类的名称。
C#支持多重继承么?
不支持。
可以用接口来实现。
被protected修饰的属性/方法在何处可以访问?
在继承或间接继承与这个类的子类中可以访问。
私有成员会被继承么?
会,但是不能被访问。
所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
请描述一下修饰符protectedinternal。
被protectedinternal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。
C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。
这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。
C#中所有对象共同的基类是什么?
System.Object.
重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。
覆写提供了子类中改变父类方法行为的实现。
在方法定义中,virtual有什么含意?
被virtual修饰的方法可以被子类覆写。
能够将非静态的方法覆写成静态方法么?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。
可以覆写私有的虚方法么?
不可以,甚至子类中无法访问父类中的私有方法。
能够阻止某一个类被其他类继承么?
可以,使用关键字sealed。
能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
可以,标记这个类为public,并标记这个方法为sealed。
什么是抽象类(abstractclass)?
一种不可以被实例化的类。
抽象类中一般含有抽象方法,当然也可有具体实现。
继承类只有实现过所有抽象类的抽象方法后才能被实例化。
何时必须声明一个类为抽象类?
当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
接口(interface)是什么?
只含有共有抽象方法(publicabstractmethod)的类。
这些方法必须在子类中被实现。
为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。
他们默认为公有方法。
可以继承多个接口么?
当然。
那么如果这些接口中有重复的方法名称呢?
这种情况中你可以决定如何实现。
当然需要特别得小心。
但是在编译环节是没有问题的。
接口和抽象类的区别是什么?
接口中所有方法必须是抽