C sharp 笔试题目整理.docx_第1页
C sharp 笔试题目整理.docx_第2页
C sharp 笔试题目整理.docx_第3页
C sharp 笔试题目整理.docx_第4页
C sharp 笔试题目整理.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.类和对象的定义类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。类是封装数据的基本单位,用来定义对象可以执行的操作;对象是类的实例;对象是具有类类型的变量。2.类和对象的关系类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。3.结构体和类的区别1: 类可以继承,结构不可以.但是结构能够继承接口。2: 类是引用类型, 引用类型在堆上分配地址,结构是值类型, 值类型在堆栈上分配地址 3: 结构:没有默认的构造函数,但是可以添加构造函数,没有析构函数,没有 abstract 和 sealed(因为不能继承)不能有protected修饰符,可以不使用new 初始化类:有默认的构造函数,有析构函数,可以使用 abstract 和 sealed 有protected 修饰符,必须使用new 初始化1堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些2结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。3在表现抽象和多级别的对象层次时,类是最好的选择4大多数情况下该类型只是一些数据时,结构时最佳的选择4.错误和异常有什么区别?1.错误是可以避免的,异常是不可以避免的2. 错误通常指的是程序员代码的错误,一般程序编译不过去,异常是运行的时候,如超时,服务器死机,断电等导致;3.异常是逻辑性的错误代码编译过去了,但在运行时出现的错误我们称之为异常4.出现错误好改,但异常通常不太好改5.C#中,string str = null 与 string str = ,说明区别: string str = 初始化对象分配空间。 string str = null 表示一个空引用,没有占用空间6.DataGrid的Datasouse可以连接什么数据源: 1) DataTable 2) DataView 3) DataSet 4) DataViewManager 5) 任何实现IListSource接口的组件 6) 任何实现IList接口的组件7.可访问性级别有哪几种: 1) public 访问不受限制。任何外部的类都可以不受限制地存取这个类的方法和成员数据 2) protected 这个类以及其派生类都可以访问。 3) internal 只有在同一程序集的文件中,内部类型或成员才是可访问的。 4) protected internal 只限于当前项目,或者从该项目的类继承的。5) private 私有成员只有在声明它们的类和结构体中才是可访问的。8.抽象类abstract和接口interface的异同: 相同点: 1) 都可以被继承。 2) 都不能被实例化。 3) 都可以包含方法声明。 4) 派生类必须实现未实现的方法。 区 别: 1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 2) 抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。 3) 接口可以被多重实现,抽象类只能被单一继承。 4) 抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中。 5) 抽象类是从一系列相关对象中抽象出来的概念, 因此反映的是事物的内部共性;接口是为了满足外部调用而定义的一个功能约定, 因此反映的是事物的外部特性。 6) 接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法。 7) 接口可以用于支持回调,而继承并不具备这个特点。 8) 抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的。 9) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法。9.什么叫应用程序域: 应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界,应用程序域可以理解为一种轻量级进程,起到安全的作用,占用资源小。10.强类型: 为所有变量指定数据类型称为“强类型”。C#是强类型语言。11.装箱和拆箱: 1. 从值类型接口转换到object(引用类型?)型:装箱。 2. 从object型转换到值类型:拆箱。 12.CLR:公共语言运行库 Common Language Runtime。 是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。13.值类型和引用类型的区别: 1) 值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。 2) 引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。 3) 一个是值COPY,一个是地址COPY。14.GC是什么? 为什么要有GC? GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc(); Runtime.getRuntime().gc()15.ASP.NET 页面之间传递值的几种方式,与各自的优缺点: 1) 使用QueryString变量:Response.Redirect(字符串); 简单,显示于地址栏,长度有限。 2) 使用Session变量: 简单;但易丢失。 3) 使用Application 变量:全局;易被误操做。 4) 使用Server.Transfer:可以传递各种数据类型的值;显示在地址栏。 5) 使用Cookie变量:使用简单;存在客户端可能被伪造。16.进程和线程的区别: 1) 进程是系统进行资源分配和调度的单位。 2) 线程是CPU调度和分派的单位。 3) 一个进程可以有多个线程,这些线程共享这个进程的资源。17.ADO.NET的组成部分: ADO.NET有两个重要组成部分,即DataSet和.NET数据提供者。 .NET 数据提供者的对象包括:Connection、Command、CommandBuilder、DataReader 和DataAdapter。1) Connection对象:主要是开启程序和数据库之间的连结。 2) Command 对象:主要可以用来对数据库发出一些指令; 3) DataAdapter对象:主要是在数据源以及DataSet之间执行数据传输的工作; 4) DataSet对象:可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来;DataSet对象可以说是ADO.NET中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter 对象当做DataSet对象以及数据源间传输数据的桥梁。 5) DataReader 对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。 18.堆和栈的区别: 1) 栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。存放值类型。 2) 堆:一般由程序员分配释放。用new等分配内存函数得到的就是在堆上。存放引用类型。 19.在c#中using和new这两个关键字有什么意义: using 关键字有两个主要用途: 1) 作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。 2) 作为语句,用于定义一个范围,在此范围的末尾将释放对象。 new 关键字:新建实例或者隐藏父类方法 20.什么是code-Behind技术: 就是页面与代码分离;ASPX,RESX和CS三个后缀的文件,这个就是代码分离。 实现了HTML代码和服务器代码分离,方便代码编写和整理。21.NET的错误处理机制: .NET错误处理机制采用try-catch-finally结构。 发生错误时,层层上抛,直到找到匹配的catch为止。22.System.String 和System.StringBuilder有什么区别? 1) System.String是不可变的字符串。 2) System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的法。 3) String类在执行字符串拼接的操作上,用“+”会产生新的对象,占用内存。 4) StringBuilder类只是修改字符串的内容,不建立新的对象。23.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 一般为3层:数据访问层,业务层,表示层。 1) 数据访问层对数据库进行操作(增删查改)。 2) 业务层一般分为二层,业务表现层实现与表示层的沟通,业务规则层实现用户密码的安全等。 3) 表示层为了与用户交互例如用户添加表单。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。24.是否可以继承String类? String类是sealed类故不可以继承。25.数组有没有length()这个方法? String有没有length()这个方法? 数组、String类都没有Length()方法,它们只有Length属性。26.成员变量和成员函数前加static的作用: 即使没有创建类的实例,也可以调用该类中的静态方法、字段、属性或事件。如果创建了该类的任何实例,不能使用实例来访问静态成员。静态成员通常用于表示不会随对象状态而变化的数据或计算。27.什么是虚函数?什么是抽象函数? 1) 虚函数:没有实现的,可由子类继承并重写的函数。 2) 抽象函数:规定其非虚子类必须实现的函数,必须被重写。28.某一密码仅使用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。29. 和 有什么区别? :数据绑定表达式语法。所有数据绑定表达式都必须包含在 字符之间。 :ASP.NET 网页中的嵌入式代码块。30.C#中几种循环的方法,并指出他们的不同: 1. for:使用于确定次数的循环。 2. foreach:使用于遍历的元素是只读的。 3. while:次数不确定,条件随机变化。 4. dowhile:次数不确定,条件随机变化,但至少要保证能被执行一次。 31.什么是存储过程?存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。32.一列数的规则如下: 1、1、2、3、5、8、13、21、34.求第30位数是多少,用递归算法实现。(C#语言) 答案: class Program public static void Main() Console.WriteLine( Foo( 30 ) ); public static int Foo( int i ) if( i 0 & i = 2 ) return 1; else return Foo( i - 1 ) + Foo( i - 2 ); 33.short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?答:1. short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能隐式转化为short型。可修改为s1 =(short)(s1 + 1) 。 2. short s1 = 1; s1 += 1正确。34.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?答:foreach (System.Windows.Forms.Control control in this.Controls) if (control is System.Windows.Forms.TextBox) System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; 35.请编程实现一个冒泡排序算法?答:int array = new int10;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 ; 36.常用的调用Web Service的方法有哪些?答:1.使用WSDL.exe命令行工具。 2.使用VS.NET中的Add Web Reference菜单选项37.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespace test public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl public event OnDBOperate OnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e) if(e.Button.Equals(BtnNew) /请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 答:if( OnNew != null ) OnNew();/OnNew( this, e );38.String s = new String(xyz);创建了几个String Object?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。39.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。40.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。int intArr=new int100;ArrayList myList=new ArrayList();Random rnd=new Random();while(myList.Count100)int num=rnd.Next(1,101);if(!myList.Contains(num)myList.Add(num);for(int i=0;im 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。 int a = -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 ; int b = new int10; int intTmp = a0, intMaxNum; for (int i = 0; i intTmp ? ai : intTmp; intMaxNum = intTmp; for (int j = 0; j b.Length; j+) for (int i = 0; i a.Length; i+) if (j = 0) intTmp = ai bj - 1) intTmp = ai intTmp ? ai : intTmp; bj = intTmp; intTmp = intMaxNum; foreach (int bb in b) Console.WriteLine(bb); Console.ReadLine();62.什么是Application Pool?答:Web应用,类似Thread Pool,提高并发性能。64.什么是SOAP,有哪些应用。答:simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议.65.XML 与 HTML 的主要区别答:1. XML是区分大小写字母的,HTML不区分。 2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束标记。在XML中,绝对不能省略掉结束标记。 3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用查找结束标记了。 4. 在XML中,属性值必须封装在引号中。在HTML中,引号是可用可不用的。 5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。66.在A中所有的自定义用户控件都必须继承自_?答:Control。67.在.Net中所有可序列化的类都被标记为_? 答:serializable68.在.net(C# or )中,Appplication.Exit 还是 Form.Close有什么不同?(winform题目)答:一个是退出整个应用程序,一个是关闭其中一个form。69.&和&的区别。&是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(and)70.error和exception有什么区别?答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。71、ajax主要用在哪些地方?答:登陆,注册,页面中某一个地方要局部动态更新72、webservers的工作原理?答:WS主要是可利用HTTP,穿透防火墙73、存储过程的事务怎么创建?答:begin transaction Commit transactionRollback transaction74、如何优化代码?答:1.跟踪页面执行2.在服务器端控件中添加客户端属性3.表单数据的服务器端验证4保持滚动条位置5禁用不必要的ViewState6.少使用服务器端控件,采用部分提交表单75、项目中用ajax的好处和缺点。优点:客户端不需要刷新整个页面就可以向服务器提交数据客户可以用更短的时间看到需要改变的数据服务器只需要处理单一的任务,而不需要生成整个页面AJAX的宗旨就是传递只需要处理的数据缺点:更多的处理放置在客户端,意味着将频繁的使用JavaScript进行开发页面的局部改变需要更精确的控制76、什么是GAC?答:全局程序集缓存77.对javascript熟悉吗?有哪些数据类型?答:JavaScript 有六种数据类型。主要的类型有 number、string、object 以及 Boolean 类型。其他两种类型为 null 和 undefined。78、const与readonly的区别?const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。常数声明的类型指定声明引入的成员类型。常数表达式必须产生具有目标类型或者可隐式转换为目标类型的类型的值。 常数表达式是在编译时可被完全计算的表达式。readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。在readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数.79、dataset和datareader的区别?一个是内存中的表,一个是只能向前的只读游标。 dataset表示一个数据集,是数据在内存中的缓存。 可以包括多个表DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开与数据库的连接datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后由用户决定是否断开连接。分布式系统的数据可能会用dataset做数据载体,因为dataset是保存数据的数据结构,而DataReader不承担保存数据的责任,它只负责从数据源读取数据到本地而已,它不是数据结构,而是网络通讯组件的高层封装。 DataAdapter也只是使用DataReader从数据源读取数据并Add到dataset保存起来而已。假如我们单独使用DataReader也可以把数据写入到业务类或者dataset里。那只是根据业务需要而选择不同的数据载体而已。实际上我们从数据库获得数据都会通过DataReader,只不过DataAdapter把这一切都封装起来了80、ajax可以后退? 答:不可以81、Session是什么?Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。82、C/S 与 B/S 区别:C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。B/是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过eb Server 同数据库进行数据交互。C/S 与 B/S 区别: 硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行 对安全要求不同 C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。对程序架构不同 C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟. 软件重用不同 C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子 系统维护不同 C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. 处理问题不同 C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小. 用户接口不同 C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本. 信息流不同 C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。83、对组件的了解。组件编程基础(一)什么是组件? 一、组件概念 简而言之,组件就是对象。C+ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。 组件是对数据和方法的简单封装。C+ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。 组件是C+ Builder环境中最令人激动的部分。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C+ Builder系统的核心。 二、组件应用 使用现成的组件来开发应用程序时,组件工作在两种模式下:设计时态和运行时态。 在设计时态下,组件显示在C+ Builder窗体编辑器下的一个窗体中。设计时态下组件的方法不能被调用,组件不能与最终用户直接进行交互操作,也不需要实现组件的全部功能。 在运行状态下,组件工作在一个确实已经运行的应用程序中。组件必须正确地将自身表示出来,它需要对方法的调用进行处理并实现与其他组件之间有效的协同工作。 设计时态下所有的组件在窗体中都是可见的,但在运行时态下不一定可见。如TTable、TQuery和TDataSet在运行时态下就不可见,但他们均完成了重要的功能。 三、组件创建 创建组件就是自行设计制作出新的组件。 设计组件是一项繁重的工作。自行开发组件与使用组件进行可视化程序开发存在着极大的不同,要求程序员熟知原有的VCL类库结构,精通面向对象程序设计。 设计组件是一项艰苦的工作。对于组件的开发者,组件是纯粹的代码。组件的开发不是一个可视化的开发过程,而是用C+或Object Pascal严格编制代码的工作。实际上,创建新组件使我们回到传统开发工具的时代。虽然这是一个复杂的过程,但也是一个一劳永逸的过程。 创建组件的最大意义在于封装重复的工作,其次是可以扩充现有组件的功能。 组件创建过程包括设计、开发、调试(就是所谓的3Ds)工作,然后是组件的使用。 组件开发者应该掌握的三项主要内容是:属性、事件和方法。84、函数和方法有什么区别?函数和方法没有本质区别,但是通常自己写的实现特定功能的代码块叫做方法,比如你写了一个类,定义了几个方法,很少说定义了几个函数。由系统间接或直接生成的不完整代码块叫做函数,比如“事件处理函数”,却很少说“事件处理方法”85、list与arrylist的区别?1). ArryList不是泛型,而List是泛型. 2). 从集合中得到元素,ArrayList需要强类型转化 而List只需在中指定就可以,不需要强类型转化86、用户控件和自定义控件的区别。Web 用户控件Web 自定义控件易于创建为使用可视化设计工具的使用者提供有限的支持每个应用程序中需要控件的一个单独副本不能添加到 Visual Studio 中的工具箱适用于静态布局难于创建为使用者提供完全的可视化设计工具支持仅在全局程序集缓存中需要控件的单个副本可以添加到 Visual Studio 中的工具箱适用于动态布局87、XML的规范a.XML区分大小写字母b.XML不能省略掉结束标记c.在XML中,拥有单个标记而没有匹配的结束标记的元素必须以一个“/”作为结尾。d.在XML中,属性值必须分装在引号中,属性值必须有引号88、接口可以包含哪些成员?答:接口可以包含属性、方法、索引指示器和事件,但不能包含常量、域、操作符、构造函数和析构函数,而且也不能包含任何静态成员。89、C#是否可以对内存直接进行操作? 答:C#是可以对内存进行直接操作的,虽然很少用到指针,但是C#是可以使用指针的,在用的时候需要在前边加unsafe, C#在Unsafe 模式下可以使用指针对内存进行操作, 但在托管模式下不可以使用指针90、New有几种用法? 答:有3种:第一种是,实例化如:New Class() 第二种是,public new 隐藏基类的方法 第三种是,在泛型类申明中的任何类型参数都必须有公共的无参构造函数。 91.C#, Java 和 c+的特点,有什么相同的地方,不同的地方, C#分别从c+和java中吸取了他们那些优点?A: C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的 过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成。微软c#语言定义主 要是从C和C+继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C+继承的可选选项方面比Java要广泛一些(比如说 structs),它还增加了自己新的特点(比方说源代码版本定义). C#从Java继承而来的特点 类:在C#中类的申明与Java很相似。特点看起来与Java相比没有变化.布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有 直接的转换过程.布尔常量true和false是C#中的关键字.错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由 底层.NET框架进行自动内存垃圾回收. C#从C和C+继承的特点 编译:程序直接编译成标准的二进制可执行形式.结构体:一个C#的结构体与C+的结构体是相似的,因为它能够包含数据申明和方法.但是,不象C+,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现界面. 预编译:C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制. #error C#独有的特点 中间代码:微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码.它也明 白许多-如果不是大多数的话-程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用 C#,Visual Basic,Managed C+-C+的一个符合CLS的版本-等语言编写的程序)将在性能上超过解释性的Java代码.当然,这一点还需要得到事实证明,因为C#和 其他生成MSIL的编译器还没有发布.但是Java JIT编译器的普遍存在使得Java和C#在性能上相对相同.象C#是编译语言而Java是解释性的,之类的声明只是商业技巧.Java的中间代码和 MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码. 命名空间中的申明:当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用using关键字来引用其他命名空间的内容. 基本的数据类型:C#拥有比C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论