Net Framework框架dotnet面试题与答案汇编.docx
- 文档编号:26978210
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:43
- 大小:42.33KB
Net Framework框架dotnet面试题与答案汇编.docx
《Net Framework框架dotnet面试题与答案汇编.docx》由会员分享,可在线阅读,更多相关《Net Framework框架dotnet面试题与答案汇编.docx(43页珍藏版)》请在冰豆网上搜索。
NetFramework框架dotnet面试题与答案汇编
一、简答题:
1、您在什么情况下会用到虚方法?
它与接口有什么不同?
答:
实现多态时会用到虚方法,虚方法在基类中实现在子类中重写,接口不能实现,在继承接口的类中实现。
2、Override与重载有什么区别?
答 :
override 与重载的区别。
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要Override 是进行基类中函数的重写。
为了适应需要。
3、值类型与引用类型有什么区别?
答:
值类型与引用类型的区别在于它们在内存中的存储方式,值类型只将值存放在内存中,这些值类型数据都存储在堆栈中。
而引用类型的内存单元中只存放内存堆中对象的地址,而对象本身存放在内存堆中。
如果引用类型的值是null,则表示未引用任何对象。
4、怎样理解静态变量?
答:
所有实例公用一个的变量
5、向服务器发送请求有几种方式?
答:
get,post。
get一般为链接方式,post一般为按钮方式。
6、DataReader与Dataset有什么区别?
答:
一个是只能向前的只读游标,一个是内存中的表。
7、如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
答 :
inputtype=""url数据库
8、用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
答:
一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等.
表示层为了与用户交互例如用户添加表单。
优点:
分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点:
增加成本。
9、软件开发过程一般有几个阶段?
每个阶段的作用?
答:
需求分析,架构设计,代码编写,QA,部署
10、微软推出了一系列的ApplicationBlock,请举出您所知道的ApplicationBlock并说明其作用?
答:
UpdaterApplicationBlock:
UpdaterApplicationBlock是一个.NETFramework组件,用于通过网络从服务器自动检测、下载和部署客户端应用程序。
通过扩展其源代码,还可以用于执行文件下载等工作。
DataAccessApplicationBloack:
DataAccessApplicationBlock是一个.NET组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向SQLServer数据库发出SQL文本命令。
11、请列举一些您用到过的设计模式以及在什么情况下使用该模式?
答:
著名的singleton(单态)
12、C#中有没有运算符重载?
能否使用指针?
答:
有,C#中也有运算符重载,如对运算符“+”进行重载;
C#中也可以使用指针,但要声明为unsafe。
13、C#中有很多类被定义为public有什么意义?
14、答:
C#中很多类被定义为public表示当前类的外部对于当前类的访问没有任何限制。
15、Params是什么含义?
答:
Params是C#中的关键字,采用此关键字可以指定参数数目为可变;在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。
如:
publicintfConvert(paramsint[]iParas)
{
…
}
16、通过超链接怎样传递中文参数?
答:
URLEncodeURLDecode
17、举例子描述一下ASP.NET服务器控件的生命周期
答:
初始化加载视图状态处理回发数据加载发送回发更改通知处理回发事件预呈现保存状态呈现处置卸载.
16、详细介绍StaticNestedClass和InnerClass的不同
答:
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。
而通常的内部类需要在外部类实例化后才能实例化。
17、用C#实现以下功能
a产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
答:
int[]intArr=newint[100];
ArrayListmyList=newArrayList();
Randomrnd=newRandom();
while(myList.Count<100)
{
intnum=rnd.Next(1,101);
if(!
myList.Contains(num))
myList.Add(num);
}
for(inti=0;i<100;i++)
intArr[i]=(int)myList[i];
b对上面生成的数组排序,需要支持升序、降序两种顺序答:
ArrayList本身就能排序
18、谈谈类和结构的区别?
答:
1结构是值类型,类是引用类型。
2结构不能从另外一个结构或者类继承,本身也不能被继承,类可以继承其他类和接口,自身也能被继承。
3结构没有默认的构造函数,但是可以添加构造函数,没有析构函数,没有 abstract 和 sealed(因为不能继承),不能有protected 修饰符,可以不使用new 初始化。
类有默认的构造函数,有析构函数,可以使用 abstract 和 sealed,有protected 修饰符,必须使用new 初始化。
19、什么叫应用程序域?
答:
应用程序域可以理解为一种轻量级进程。
起到安全的作用。
占用资源小。
20、什么是受管制的代码?
答:
unsafe:
非托管代码。
不经过CLR运行。
21、什么是强类型系统?
答:
RTTI:
类型识别系统。
22、什么是重载?
答:
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要。
23、你对XMLHTTP、WEBSERVICE了解吗?
简单描述其特点、作用?
24、答:
xmlhttp可以主动获取远端web代码,类似HttpWebRequest。
25、接口和抽象类有什么区别?
你选择使用接口和抽象类的依据是什么?
答:
接口用于规范,抽象类用于共性。
26、自定义控件和一般用户控件的异同?
如果要用这两者之一,你会选择哪种?
为什么?
答:
1、自定义控件默认继承自System.Windows.Fomrs.Control.用户控件默认继承自System.Windows.Fomrs.UserControl
2、用户控件只能在当前项目中使用,而自定义控件可以在多个项目中重复使用
3、自定义控件最终编译成动态连接库形式,使用自定义控件时,可以在项目中直接添加对该动态库的引用,然后通过代码创建该自定义控件
4、如果自定义控件从已有的控件继承而来,则可以在已有的控件的OnPaint事件中重绘该控件的外观
27、面向对象的概念,主要特点?
答:
封装,基层,多态
28、UML答:
统一建模语言
29、请说明.net中的错误处理机制,并举例?
答:
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
30、请说出强名的含义?
答:
具有自己的key,可以在GAC为公用
31、请列出c#中几种循环的方法,并指出他们的不同?
答:
forwilefoeach
32、请指出.net中所有类型的基类?
答:
object
33、请指出GAC的含义?
答:
全局程序集缓存
34、C#中接口和类的异同?
答:
类是方法功能的实现和集合,接口是规范类.约束类
35、有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析?
答:
同一个名称控件直接,或者反射
36、如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明?
37、答:
conststaticintclassNum=0;classNum++;
38、A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程?
答:
构造先父后子,析构反之
39、需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个?
答:
stringinputStr="xx xx ";
inputStr=Regex.Replace(inputStr.Trim(),"*","");
40、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
using指令和语句new创建实例new隐藏基类中方法?
答:
using引入名称空间或者使用非托管资源new新建实例或者隐藏父类方法
41、下面这段代码输出什么?
为什么?
inti=5;
intj=5;
if(Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("NotEqual");
答:
不相等,因为比较的是对象
42、写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例。
答:
inputStr=inputStr.ToCharArray().Reverse().ToString();
43、什么是反射?
答:
动态获取程序集信息
44、用Singleton如何写设计模式?
答:
static属性里面new,构造函数private
45、C#中的垃圾回收机制是怎样的?
三个generation,当每个generation内存满了的时候检查引用,无引用就回收内存
46、什么是ApplicationPool?
答:
Web应用,类似ThreadPool,提高并发性能
47、链表和数组的区别,各有什么优缺点?
答:
一个可以动态增长,一个固定(VB中可以Redim),性能数组教好
48、什么是友元函数?
答:
用关键字friendly声明,可以访问protect级别方法
49、什么是内存泄漏,怎样最简单的方法判断被存泄漏?
答:
C++,C中忘了释放内存,内存不会再次分配
50、什么是XML?
答:
可扩展标记语言,可以做配置文件,可以传输数据,可以存储数据
51、Socket怎么实现?
答:
不同的语言有不同的方式,有不同的包,有不同的通讯方式!
就java和c#来说:
他们都有net包/命名空间直接使用类就可以了。
52、publicstaticconstintA=1;这段代码有错误么?
是什么?
答:
const不能用static修饰
53、面向对象的思想主要包括什么?
答:
面向对象三大特征:
继承,封套,多态.面相对象的思想也不是一句两句就能说清楚..主要思想就是减少代码重复,增大代码复用率..
54、什么是ASP.net中的用户控件
答:
用户控件一般用在内容多为静态,或者少许会改变的情况下,用的比较大。
类似ASP中的include但是功能要强大的多。
55、列举一下你所了解的XML技术及其应用
答:
xml用于配置,用于保存静态数据类型.接触XML最多的是webServices..和config
56、ASP.net的身份验证方式有哪些?
分别是什么原理?
答:
window验证:
为每个用户开启window帐号,验证其身份.安全性较高.
forms验证:
为每个登陆用户写入一个身份验证票据..在web使用最广的验证方式..灵活方便.
57、什么是code-Behind技术?
答:
新建一个VS.NET下的项目..看到ASPX,RESX和CS三个后缀的文件了吗?
?
这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.
58、活动目录的作用。
答:
活动目录是window2000的最重要的功能.可以将用户信息全部集成起来,登陆以后可以访问多个不同的网络服务
59、.net中读写XML的类都归属于哪些命名空间?
答:
System.XML类
60、什么是SOAP,有哪些应用。
答:
simpleobjectaccessprotocal,简单对象接受协议.以xml为基本编码结构,建立在有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范是微软大力推广的WebService使用的协议
61、.如何理解.net中的垃圾回收机制。
答:
垃圾回收体制如下:
如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
62、在.net(C# or )中如何取消一个窗体的关闭。
答:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}
63、在.net(C# or )中,Appplication.Exit 还是 Form.Close有什么不同?
答:
一个是退出整个应用程序,一个是关闭其中一个form。
64、在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。
比如美国用$10,321.50和$122,235,401.22而在英国则为£10 321.50和£122 235 401.22
答:
System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US";
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB";
为英国货币类型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:
c}",y);
65、某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1)密码单词的最小长度是两个字母,可以相同,也可以不同
(2)K不可能是单词的第一个字母
(3)如果L出现,则出现次数不止一次
(4)M不能使最后一个也不能是倒数第二个字母
(5)K出现,则N就一定出现
(6)O如果是最后一个字母,则L一定出现
问题一:
下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
A) K B)L C) M D) N答:
B
问题二:
如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
A)1个 B)3个 C)6个 D)9个答案:
A
问题三:
下列哪一个是单词密码?
A) KLLN B) LOML C) MLLO D)NMKO答案:
C
66、62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
答案:
62移动成2的6次方
67、&和&&的区别?
答:
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
68、HashMap和Hashtable的区别?
答:
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
69、short s1 = 1; s1 = s1 + 1;有什么错?
short s1 = 1; s1 += 1;有什么错?
答:
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译)
70、Overloaded的方法是否可以改变返回值的类型?
答:
Overloaded的方法是可以改变返回值的类型。
71、error和exception有什么区别?
答:
error 表示恢复不是不可能但很困难的情况下的一种严重问题。
比如说内存溢出。
不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。
也就是说,它表示如果程序运行正常,从不会发生的情况。
72、<%# %> 和 <% %> 有什么区别?
答:
<%# %>表示绑定的数据源 <% %>是服务器端代码块
73、你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?
你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)
答:
1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
5 在ASP.NET中增加了40多个新的控件,减少了工作量
74、重载与覆盖的区别?
答:
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的
75、在C#中,string str = null 与 string str = " " 请尽量使用文字或图象说明其中的区别。
答:
null是没有空间引用的; " " 是空间为0的字符串;
76、分析以下代码,完成填空
string strTmp = "abcdefg某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j= 答:
i=13.j=10
77、分析以下代码。
public static void test(string ConnectString)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try
{
conn.Open();
…….
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
finally
{
if (!
conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
请问1)以上代码可以正确使用连接池吗?
答:
如果传入的connectionString是一模一样的话,可以正确使用连接池。
不过一模一样的意思是,连字符的空格数,顺序完全一致。
78、以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?
答:
只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。
所以理论上并非所有异常都会被捕捉。
)
79、公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:
点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。
根据您的知识,请简要谈一下您的思路:
答:
根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中
80、什么是WSE?
目前最新的版本是多少?
答:
WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,目前最新版本2.0。
81、在下面的例子里
using System;
class A
{ public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:
A
{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:
X=1,Y=0
82、下面的例子中
using System;
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
产生的输出结果是什么?
答:
x=1,y=2
83、abstract class和interface有什么区别?
答:
声明方法的存在而不去实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Net Framework框架dotnet面试题与答案汇编 Framework 框架 dotnet 试题 答案 汇编