C#面试题目带完整答案.doc

上传人:h**** 文档编号:889347 上传时间:2018-11-04 格式:DOC 页数:29 大小:163.01KB
下载 相关 举报
C#面试题目带完整答案.doc_第1页
第1页 / 共29页
C#面试题目带完整答案.doc_第2页
第2页 / 共29页
C#面试题目带完整答案.doc_第3页
第3页 / 共29页
C#面试题目带完整答案.doc_第4页
第4页 / 共29页
C#面试题目带完整答案.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 C# 面试题集 1、C#中 property 与 attribute 的区别,他们各有什么用处,这种机制的好处在哪里?A: property 和 attribute 汉语都称之为属性。不过 property 是指类向外提供的数据区域。而 attribute 则是描述对象在编译时或运行时属性的。这两者是有本质区别的2、讲一讲你理解的 web service,在 dot net framework 中,怎么很好的结合 xml?(讲概念就行了)从表面上看,Web Service 就是一个应用程序,它向外界暴露出一个能够通过Web 进行调用的 API。这就是说,你能够用编程的方法通过 Web 调用来

2、实现某个功能的应用程序。从深层次上看,Web Service 是一种新的 Web 应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为 Web)中被描述、发布、查找以及通过 Web 来调用。可扩展的标记语言 XML 是 Web Service 平台中表示数据的基本格式。除了易于建立和易于分析外,XML 主要的优点在于它既与平台无关,又与厂商无关。XML 是由万维网协会(W3C)创建,W3C 制定的 XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web Service平台是用 XSD 来作为数据类型系统的。当你用某种语言如 VB.NET

3、或 C# 来构造一个 Web Service 时,为了符合 Web Service 标准,所有你使用的数据类型都必须被转换为 XSD 类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。3. C#, Java 和 c+的特点,有什么相同的地方,不同的地方, C#分别从 c+和 java中吸取了他们那些优点?A: C#看起来与 Java 有着惊人的相似;它包括了诸如单一继承,界面, 与 Java 几乎同样的语法,和编译成中间代码再运行的 过程. 但是 C#与 Java 有着明显的不同, 它借鉴了 Delphi 的一个特点,与

4、COM(组件对象模型) 是直接集成。微软 c#语言定义主 要是从 C 和 C+继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从 C+继承的可选选项方面比 Java 要广泛一些(比如说 structs),它还增加了自己新的特点(比方说源代码版本定义). C#从 Java 继承而来的特点 类:在 C#中类的申明与 Java 很相似。特点看起来与 Java 相比没有变化.布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型. 从布尔类型到其他类型没有 直接的转换过程.布尔常量 true 和 false 是 C#中的关键字.错误处理:如 Java 中那样,

5、通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由 底层.NET 框架进行自动内存垃圾回收. C#从 C 和 C+继承的特点 编译:程序直接编译成标准的二进制可执行形式.结构体:一个 C#的结构体与 C+的结构体是相似的,因为它能够包含数据申明和方法.但是,不象 C+,C#结构体与类是不同的而且不支持继承.但是,与 Java 相同的是, 一个结构体可以实现界面. 预编译:C# 中存在预编译指令支持条件编译,警告,错误报告和编译行控制. #error C#独有的特点 中间代码:微软在用户选择何时 MSIL 应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称 MSIL 不是解释性的,

6、而是被编译成了机器码. 它也明 白许多- 如果不是大多数的话-程序员认为 Java 程序要不可避免的比 C 编写的任何东西都要慢.而这种实现方式决定了基于 MSIL 的程序(指的是用 C#,Visual Basic,“Managed C+“-C+的一个符合 CLS 的版本-等语言编写的程序 )将在性能上超过“ 解释性的“Java 代码.当然,这一点还需要得到事实证明,因为 C#和 其他生成 MSIL 的编译器还没有发布. 但是 Java JIT 编译器的普遍存在使得 Java 和 C#在性能上相对相同.象“C#是编译语言而 Java 是解释性的,“之类的声明只是商业技巧.Java 的中间代码和

7、 MSIL 都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码. 命名空间中的申明:当你创建一个程序的时候, 你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体. 必须使用 using 关键字来引用其他命名空间的内容. 基本的数据类型:C#拥有比 C,C+或者 Java 更广泛的数据类型.这些类型是 bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和 decimal.象 Java 一样,所有这些类型都有一个固定的大小.又象 C

8、和 C+一样,每个数据类型都有有符号和无符号两种类型.与 Java 相同的是,一个字符变量包含的是一个 16 位的Unicode 字符.C#新的数据类型是 decimal 数据类型, 对于货币数据,它能存放 28 位10 进制数字 . 两个基本类:一个名叫 object 的类是所有其他类的基类. 而一个名叫 string 的类也象object 一样是这个语言的一部分. 作为语言的一部分存在意味着编译器有可能使用它-无论何时你在程序中写入一句带引号的字符串,编译器会创建一个 string 对象来保存它. 参数传递:方法可以被声明接受可变数目的参数. 缺省的参数传递方法是对基本数据类型进行值传递.

9、ref 关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值.out 关键字也能声明引用传递过程 ,与 ref 不同的地方是,它指明这个参数并不需要初始值. 与 COM 的集成:C# 对 Windows 程序最大的卖点可能就是它与 COM 的无缝集成了,COM 就是微软的 Win32 组件技术.实际上, 最终有可能在任何 .NET 语言里编写 COM客户和服务器端.C# 编写的类可以子类化一个以存在的 COM 组件; 生成的类也能被作为一个 COM 组件使用,然后又能使用 ,比方说, JScript 语言子类化它从而得到第三个COM 组件.这种现象的结果是导致了一个运行环境

10、的产生,在这个环境里的组件是网络服务,可用用任何.NET 语 言子类化. 索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样) 以外是相似的. 代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了.代理对象可以被移动到另一个地方, 然后可以 通过访问它来对已存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event 关键字用在将在事件发生的时候被当成代理调用的方法声明中. 4. C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)A:C#在 Unsafe 模式下可以使用指针

11、对内存进行操作, 但在托管模式下不可以使用指针5. 用 Visual C+ 6.0 编写的代码(unmanaged code),如何在 CLR 下和其他 dot net component 结合?A:。net 与 Com 互操作 在.net 中可以通过添加引用的方式将 COM 加载在 CLR下,将原有的 COM 中的类型相应变化为.Net 下可识别的类型6. 用 C实现以下功能a 产生一个 int 数组,长度为 100,并向其中随机插入 1-100,并且不能重复。b 对上面生成的数组排序,需要支持升序、降序两种顺序A a:using System;public class MainEntrypublic static void Main()int arrayint=new int100;Random random=new Random(1);for(int i=1;i 和 有什么区别?A:表示绑定的数据源是服务器端代码块38.当整数 a 赋值给一个 object 对象时,整数 a 将会被_装箱_?39.类成员有_5_种可访问形式?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。