刚毕业年年年工作经验都可用的面试题及答案设计模式在后面.doc
《刚毕业年年年工作经验都可用的面试题及答案设计模式在后面.doc》由会员分享,可在线阅读,更多相关《刚毕业年年年工作经验都可用的面试题及答案设计模式在后面.doc(75页珍藏版)》请在咨信网上搜索。
1、C#面试题(设计模式在后面)2. const和readonly有什么区别?答:const可以用于类的成员常量和局部常量,必须在声明时赋值,之后不可以对常量进行赋值。而readonly只能用于类的成员变量不能用于局部变量,在声明时可以不赋值,除了在构造函数中可以再次赋值外,其它的地方和const同样也不能赋值。5. 接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?答答:区别如下(1) 抽象类可以有抽象成员(无具体实现),也可以有非抽象成员(有具体实现);接口只有抽象成员。(2) 一个类不能同时继承多个抽象类,一个类可以同时实现多个接口。假如多个子类中有很多代码是反复的,这时采用抽象类
2、,由于可以将这些代码放到抽象类的非抽象方法中,这样可以达成代码复用。当实现多个接口时由于抽象类不支持,只能使用接口。6. struct和class有什么区别答:两者都可以有成员变量、属性、索引器、事件、函数、构造函数,重要区别如下:区别点 结构 类类型 值类型 引用类型成员变量 在声明时不能赋值 可以赋值也可以不赋值构造函数 可以不写,系统提供默认构造函数,默认构造函数中会将所有成员值设为0,假如写了构造函数则构造函数必须有参数,且在构造函数中必须为每一个成员赋值。 可以不写,系统提供默认构造函数,写了也没有结构中的限制。析构函数 不能有析构函数 可以有析构函数继承性 自定义的结构不能从类继承
3、,但可以实现接口,结构都是密封(sealed),不能从结构继承 类没有限制7. try后面一个finally,try中有一个return,那么finally中的代码会不会运营?假如运营,是在return后还是return前。答:会运营,并且在return 后运营。8. 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能反复。答:该题解题思绪有很多,重要是看运营效率如何,下面提供一种方法。int array = new int100;int temp = new int100;for (int i = 0; i 100; i+)tempi=i+1;Random rand =
4、new Random();for (int i = 0; i 100; i+)int index = rand.Next(100-i-1);arrayi = tempindex;tempindex=temp100-i-1;9. C#中要使一个类支持foreach遍历,实现过程如何?答:必须实现IEnumerable,IEnumerator这两个接口,如下:public class MyList : IEnumerable,IEnumeratorprivate int position = -1;string array = new string4;public MyList()array0 =
5、 a;array1 = b;array2 = c;array3 = d;#region IEnumerable 成员/每次使用foreach时都会调用它得到一个枚举器public IEnumerator GetEnumerator()Reset();return (this as IEnumerator);#endregion#region IEnumerator 成员/遍历时通过这个属性得到值public object Currentget return arrayposition; /访问下一个元素时使用MoveNext移动位置public bool MoveNext()if (posit
6、ion array.Length-1)position+;return true;elsereturn false;/遍历前要使位置归位public void Reset()position = -1;#endregion以下不用foreach遍历集合MyList list=new MyList();While(list.MoveNext()Object o=list.Current;10. 以下程序有什么错?public class TestClassprivate int count;private static int y;public static void setvalue ()co
7、unt=1;y=1;答:在静态函数中只能访问静态成员变量;以上代码访问了实例成员。11. net中什么类不能被继承?答:假如在类前加上sealed关键字,则表达该类为密封类,密封类不能被继承。sealed 除了可以应用于类外,还可以应用于实例方法和属性。密封方法会重写基类中的方法,但其自身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与override一起使用。如:/下面这个sealed使用对的,表达该类不能继承public sealed class Testprivate int myVar;/下面这个sealed错误,编译不会通过,由于sealed必须和o
8、verride一起使用public sealed int MyPropertyget return myVar; set myVar = value; /下面这个sealed使用对的,表达假如该类不是密封类,/那么在派生类中也不可以重写该方法public sealed override string ToString()return base.ToString();12. is 和as 有什么区别?答:is用来判断一个实例是否属于某个类。如:Dog d=new Dog();If(d is Dog)Console.WriteLine(“d是一只狗”);以上语句Console.WriteLine(
9、“d是一只狗”);会运营,由于d is Dog返回true,假如Dog从Animal类继承并实现了IPet接口,则d is Animal和d is IPet都会返回true;as用于在兼容的引用类型之间执行转换,假如转换失败则返回null,它等价于如下语句:expression is type ? (type)expression : (type)null13. net中函数传递参数有那些方式?有什么区别?答:传值和传引用,传引用又两种方式,ref和out,ref规定变量在传参前赋值,out可以不赋值。传引用必须是一个地址,传值是指将栈中的值拷贝到函数的参数,传引用表达传入的变量和接受参数是同
10、一个变量public class Testpublic int myVar;public int MyPropertyget return myVar; set myVar = value; 以上这个类中有字段和属性private void F(ref int i)i = 100;有一个方法传递引用,调用方式如下:Test t = new Test();F(ref t. MyProperty);以上代码编译不能通过,由于属性不是变量,其实质是函数,如下则可通过Test t = new Test();F(ref t. myVar);由于字段是变量14. 一列数的规则如下: 1、1、2、3、5、8
11、、13、21、34. 求第30位数是多少, 用递归算法实现。答:public class MainClasspublic static void Main()Console.WriteLine(Foo(30);public static int Foo(int i)if (i = 0)return 0;else if( i = 2)return 1;elsereturn Foo(i -1) + Foo(i - 2);15. C#中的委托是什么?事件是不是一种委托?答 :委托封装了函数指针的集合,它可以指向一组函数。事件也是委托,是一种特殊的委托。16. 请编程实现一个冒泡排序算法?答:int
12、array = new int * ;int temp = 0 ;for (int i = 0 ; i array.Length - 1 ; i+)for (int j = i + 1 ; j array.Length ; j+)if (arrayj arrayi)temp = arrayi ;arrayi = arrayj ;arrayj = temp ;17. 在下面的例子里using System;class Apublic A()PrintFields();public virtual void PrintFields()class B:Aint x=1;int y;public B(
13、)y=-1;public override void PrintFields()Console.WriteLine(x=0,y=1,x,y);当使用new B()创建B的实例时,产生什么输出?答:X=1,Y=0当使用New创建B的实例时,由于B继承了A类,A的构造函数一方面会被运营,但应当注意的是,虽然运营的是A的构造函数,但在A的构造函数中调用的函数一方面是在B类中查找,由于PrintFields已被重写,所以最终运营B类中的PrintFields函数。18. CTS、CLS、CLR分别作何解释?答:CTS:Common Type System 通用系统类型。CLS:Common Langu
14、age Specification 通用语言规范。CLR:Common Language Runtime 公共语言运营库。20. net Remoting 的工作原理是什么?答:服务器端向客户端发送一个进程编号,一个程序域编号,以拟定对象的位置。21. 求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+m答:int m = Convert.ToInt32(this.TextBox1.Text) ;int sum = 0 ;for (int i = 0 ; i m + 1 ; i+)if(i%2) = 1)sum += i ;Elsesum = Sum - I ;System.
15、Console.WriteLine(sum.ToString();System.Console.ReadLine() ;其实尚有一个很简朴的方式,上面的表达式,把它提成1-2、3-4、5-6可以看出,假如m是偶数,那么结果就是m/2*(-1),假如m是奇数,结果就是m-m/222. 列举ASP.NET 页面之间传递值的几种方式。答. 1).使用QueryString, 如.?id=1; response. Redirect().2).使用Session变量3).使用Server.Transfer4).Application5).6).数据库7).ViewStat8).cookie23. 请编程
16、遍历页面上所有TextBox控件并给它赋值为string.Empty?答:在页面中调用下面的函数,SetTextBox(this);public void SetTextBox(Control ctrl)if (ctrl is TextBox)(ctrl as TextBox).Text=string.Empty;elseforeach (Control child in ctrl.Controls)SetTextBox(ctrl);24. 根据线程安全的相关知识,分析以下代码,当调用test方法时i10时是否会引起死锁?并简要说明理由。Class Apublic void Test(int
17、i)lock(this)if (i10)i-;Test(i);答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但假如把int换做一个object,那么死锁会发生)25. 简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。答:WebSevice使用HTTP协议,因此可以穿透防火墙。而Remoting使用TCP/IP,二进制传送提高效率。remoting是.net中用来跨越machine, process, appdomain进行方法调用的技术,对于三层结构的程序,就可以使用remoting技术来
18、构建它是分布应用的基础技术.相称于以前的DCOM;Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实行。Web Service令基于组件的开发和web的结合达成最佳,基于组件的对象模型26. 公司规定开发一个继承System.Windows.Forms.ListView类的组件,规定达成以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思绪答:根据点击的列头,包该列的ID取出,按照该ID排序后,在绑定到ListView中。28. St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业 年年 工作经验 可用 试题 答案 设计 模式 在后面
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。