还剩6页未读,继续阅读
文本内容:
第1部分.NET基本概念
1.应用程序域:应用程序域可以理解为一种轻量级进程起到安全的作用占用资源小应用程序域提供安全而通用的处理单元,公共语言运行库可使用它来提供应用程序之间的隔离开发者可以在具有同等隔离级别存在于单独的进程中的单个进程中运行几种应用程序域,而不会导致进程间调用或进程间切换等方面的额外开销在一种进程内运行多种应用程序的能力明显增强了服务器的可伸缩性
2.CTS通用类型系统CTS类似于COM定义的原则二进制格式,.NET定义了一种称为通用类型系统Common TypeSystemCTS的类型原则这个类型不仅实现COM的变量兼容,并且还定义了通过顾客自定义类型的方式进行类型扩展任何类型的方式进行类型扩展任何以.NET平台作为目的的语言必须建立它的数据类型与CTS的类型间的影射所有.NET语言共享这一类型系统,实现他们之间无缝的互操作该方案还提供了语言之间的继承性
3.CLS公共语言规范.NET通过定义公共语言规范CLSCommon LanguageSpecification,限制了由这些不一样引起的互操作性问题CLS指定了一种以.NET平台为目的的语言所必须支持的最小特性,以及该语言与其他.NET语言之间实现互操作性所需要的完备特性CLS是CTS的一种子集
4.CLR公共语言运行库Common LanguageRuntime CLR.CLR是CTS的实现,也就是说,CLR是应用程序的执行引擎和功能齐全的类库,该类库严格按照CTS规范实现作为程序执行引擎,CLR负责安全地载入和运行顾客程序代码,包括对不一样对象的垃圾挥手和安全检查CLR监控之下运行的代码,称为托管代码managed code
5.IL IntermediateLanguage,中间语言可用于语言互操作性,IL不是字节代码,但很靠近字节代码,因此执行应用程序时,IL到机器代码的转换要快诸多独立于CPU的指令集由CLR转换为特定于CPU的代码
6.Microsoft IntermediateLanguage MSIL微软中间语言:MSIL是将.NET代码转化为机器语言的一•种中间过程它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言7•托管代码在.NET环境中运行的代码都称之为受管制的代码托管代码,在.NET环境之外,在Windows上运行的代码称之为不受管制的代码
8.Assembly程序集lAssembly是一种布署的单元,例如EXE或者一种DLL2Assembly包括一种或者多种文献dll,exe或者HTML文献,Assembly代表一组资源,类型定义和这些类型的实现,一种Assembly也许还包括对其他Assembly的引用,这些资源,类型和应用时在一种manifest得数据块中描述的这个manifest是Assembly的一部分,它是的Assembly实现了自描述⑶一种Assembly是完全的自描述的一种Assembly包具有元数据,CLR使用这些元数据用来进行类型检查,安全等一切操作由于所有的信息都是在assembly内部,因此它是不需要注册的,这就是它相对于COM的基本优势4多种不一样版本的Assembly可以布署到平级的不一样文献夹内,这些不一样的版本可以不相影响的共同执行Assembly可以使私有的也可以是共享的,私有的Assembly布署时,是被拷贝到引用它的客户程序相似的目录,不需要注册,也不需要安装当元件被删除时,也不需要清理注册表,同步也不需要卸载程序,之需要删除就好了5在共享程序集布署中,一种程序集被安装在了Glabal AssemblyCache中,GAC包括可供这个机器上所有.NET应用访问的程序集
9.GACGAC(Global AssemblyCache,全局程序集缓存)使用在共享的.NET程序集所在的目录它处理了几种程序共享某一种程序集的问题不必再将那个被共享的程序集拷贝到应用程序目录.NET应用程序在加载的时候,会首先查看全局应用程序集缓存,假如有就可以直接使用,没有再到应用程序目录进行查找它在如下几种状况下使用
(1)假如一种应用必须在在几种不一样的应用间共享
(2)假如一种程序集有某些特定的安全需求,例如只有管理员可以删除这个Assembly,假如一种程序集是私有的那么只要简朴的删除Assembly文献就可以删除这个程序集
10.GC(Garbage Collection,垃圾搜集器)垃圾回收器是用来管理应用程序的内存分派和释放的在垃圾回收器出现此前,程序员在使用内存时需要向系统申请内存空间有些语言,例如Visual Basic,可以自动完毕向系统申请内存空间的工作不过在诸如Visual C++的语言中规定程序员在程序代码中申请内存空间假如程序员在使用了内存之后忘了释放内存,则会引起内存泄漏程序员不用紧张内存管理,对象在离开生存期后垃圾搜集器会自动进行内存回收
11.反射程序集包括模块,而模块又包括类型,类型下有组员,反射就是管理程序集,模块,类型的对象,它可以动态的创立类型的实例,设置既有对象的类型或者获取既有对象的类型,能调用类型的措施和访问类型的字段属性它是在运行时创立和使用类型实例.
12.强类型与弱类型强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型两者各有好处,强类型安全,由于它事先已经确定好了,并且效率高一般用于编译型编程语言,如C++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候轻易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等
13.面向对象编程语言的特性⑴封装封装是把客观事物封装成抽象的类,并且类可以把自己的数据和措施只让可信的类或者对象操作,对不可信的进行信息隐藏⑵继承:继承指可以使用既有类,并在无需重新编写的状况下创立新类的过程,通过继承创立的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”⑶多态是容许将父对象设置成为和一种或更多的他的子对象相等的技术,赋值之后,父对象就可以根据目前赋值给它的子对象的特性以不一样的方式运作简朴的说,就是容许将子类类型的指针赋值给父类类型的指针
14.进程和线程:进程是系统进行资源分派和调度的单位;线程是CPU调度和分派的单位,一种进程可以有多种线程,这些线程共享这个进程的资源
15.堆和栈的区别?答栈由编译器自动分派、释放在函数体中定义的变量一般在栈上堆一般由程序员分派释放用new、malloc等分派内存函数分派得到的就是在堆上
16.程序开发中的三层架构三层指的是表达层、业务逻辑层和数据访问层表达层顾客界面,和顾客进行交互业务逻辑层业务逻辑重要是自定义某些业务规则,完毕某些功能数据访问层和数据库打交道,进行数据的查询和操作三层架构重要体现出对程序分而治之的思想,数据访问层只负责提供原始数据,并不需要业务逻辑是什么;业务逻辑层调用数据访问层提供的措施,实现某些业务逻辑,自身不需要理解数据访问层的实现;表达层直接调用业务逻辑提供的措施,把数据展现给顾客,同样,它也不需要理解业务逻辑层和数据访问层是怎么实现的这样的好处就是减少耦合,易于程序的维护和扩展,每一层都可以由不一样的团体来开发,便于分工第2部分C#基本语法
1.c#中的循环措施1)do:先循环后判断循环条件Do{〃循环体)while(循环条件);2)while:根据条件判断与否循环While(循环条件)(//循环体}3)for:可以指定循环次数,递增量等,功能强大for(初始值;条件;递增)(〃循环体)4)foreach:遍历集合,效率最佳foreach(类型变量in集合)(〃循环体
2.C#中的三元运算符体现式?成果1(体现式为true时执行)成果2(体现式为false时执行)
3..NET中所有类型的基类是Object
4.运算符和运算符是位运算符,表达按位与运算,是逻辑运算符,表达逻辑与(and).
5.C#中的访问修饰符private、protected、public internal的访问权限(l)private:私有组员,在类的内部才可以访问
(2)protected:保护组员,该类内部和继承类中可以访问
(3)public:公共组员,完全公开,没有访问限制
(4)internal:在同一命名空间内可以访问
7.在循环语句中break语句和continue语句的用途break语句用于终止循环,当break语句执行后,该循环未执行的循环体不再被执行,而是转而执行循环语句的下一条语句;continue语句用于中断执行本次循环体,即立即开始下一次循环,而忽视循环体余下的语句
8.C#中的using关键字用于引入名称空间或者使用非托管资源
9.C#中的new关键字用于新建实例或者隐藏父类措施
10.C#中的swtich语句的一般形式为switch(exprl),其中,exprl是一种整数体现式因此传递给switch和case语句的参数应当是int、short char或者byte而string都不能作用于swticho
11.C#中的数组没有length这个措施,有length的属性String有length()这个措施
12.请阐明.NET中的异常处理异常是从Exception类继承的对象,异常从发生问题的代码区域引起,然后沿堆栈向上传递,直到应用程序处理它或程序终止try〃执行代码}catch{〃出错处理}finally{〃无论怎样,都要执行}
13.构造函数可以用private修饰;构造函数必须与类名相似;构造函数可以带入口参数;构造函数不可以申明返回类型
14.C#中的值类型与引用类型大多数编程语言提供内置的数据类型例如整数和浮点数,会在作为参数传递时被复制即,它们通过值来传递在.NET Framework中,这些称为值类型值类型没有与存储类的实例有关的系统开销,并且它们不需要构造函数在内存中,值类型变量寄存的是实际的值,其位于堆栈中,大多数数据类型、枚举、构造体都是值类型引用类型的变量又称为对象,可存储对实际数据的引用在内存中,引用类型变量寄存的是地址,其位于堆中,接口、类、字符串、数组都是引用类型
15.装箱把一种值类型的数据转换为引用类型的数据的过程叫装箱当整数a赋值给一种object对像时,整数a将会被装箱拆箱把一种引用类型的数据转换为值类型的数据的过程叫拆箱
16.DateTime是Struct类型,属于值类型,值类型不能取值为null,只有引用类型才能被赋值null
17.对比C#中的struct与class构造和类具有大体的语法,不过构造受到的限制比类要多1struct是值类型,class是引用类型2struct不能被继承,class可以被继承3struct默认的访问权限是public,而class默认的访问权限是private.4struct不能由程序员申明构造函数,虽然是默认不带参数的构造函数,同样也不能有析构的处理部分这是由于Struct的构造函数是由编译器自动生成的Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高5struct的new和class的new是不一样的struct的new是执行构造函数创立一种新实例再对所有的字段进行复制而class则是在堆上分派一块内存然后再执行构造函数因此struct的内存并不是在new的时候分派的,而是在定义的时候分派
18.虚函数virtual可由子类继承并重写的函数抽象函数abstract规定其非虚子类必须实现的函数,必须被重写无论是在派生类中对基类的虚函数或者抽象函数进行重写,都规定在申明中使用override关键字
19.C#中的措施重载,是指容许存在多种同名函数,而这些函数的参数表不一样或许参数个数不一样,或许参数类型不一样,或许两者都不一样
20.String s二new String〃xyz〃;创立了几种String Object答两个对象,一种是答yx,一种是指向答yx”的引用对像s
21.在C#中,string str=null与string str=答“”的区别string str=null是不给其分派内存空间,而string str=给它分派长度为空字符串的内存空间.
22.float f=-
123.567F;int i=int f;i的值是
23.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换a=a+b;b=a~b;a=a-b
24.short si=1;si=si+1;有什么错?short si=1;si+=1;有什么错?答short si=1;si=si+1;有错,si是short型,sl+1是int型,不能显式转化为short型可修改为si=short si+1o shortsi=1;si+二1对的
25..写出程序的输出成果public abstractclass A public A{Console.WriteLineA;}public virtualvoid FunConsole.WriteLine〃A・Fun〃;public class B:Apublic B Console.WriteLineB;public newvoid FunConsole.WriteLine〃B.Fun〃;public staticvoid MainA a=new B;a.Fun;}ABA.Fun
26.请编程实现一种冒泡排序算法int[]array=new int[*];int temp=0;for inti=0;iarray.Length-1;i++for intj=i+1;jarray.Length;j++{if array[j]array[i]temp=array[i];array[i]=array[j];array[j]=temp;}
27.在下面的例子里using System;class Apublic APrintFields;public virtualvoid PrintFields{}}classB:A intx=l;int y;publicBy二T;public overridevoid PrintFieldsConsole.WriteLine〃x={0},y=⑴〃,x,y;}当使用new B创立B的实例时,产生什么输出?答X=l,Y=0;x=1y=-
128.一列数的规则如下
1、
1、
2、
3、
5、
8、
13、
21、
29.用C#实现如下功能A产生一种int数组,长度为100,并向其中随机插入1T00,并且不能反复B对上面生成的数组排序,需要支持升序、降序两种次序int[]iArray=new int
[100];Random random=new Random;ArrayList arraylist二new ArrayList100;forint i=0;i100;i++arraylist.Addi;forint i=0;i100;i++{int iKey=random.Next0,99-i;IArray[i]=Convert.Tolnt32arraylist[iKey];arraylist.RemoveAt iKey;Array.Sort iArray;〃排序Array.Reverse iArray;〃反序
30.C#中的委托可以把一种措施作为参数代入另一种措施委托可以理解为指向一种函数的引用委托实际上是一种函数指针,指向函数的入口地址可以动态地将与委托签名(返回类型,参数类型,参数个数)相似的措施赋给一种委托实例,以实现动态调用措施申明委托的关键字是delegate.C#中的事件是一种特殊的委托第3部分WinForm编程
1.在WinForm窗体中,放置了一种PictureBox控件PictureBoxl,在设置PictureBoxl控件的Image属性后,当图片与控件的大小不一致时,可以通过如下代码(A)使PictureBoxl控件的大小与图片大小保持一致A.this.PictureBoxl.SizeMode=PictureBoxSizeMode.AutoSize;B.this.PictureBoxl.SizeMode=PictureBoxSizeMode.Normal;C.this.PictureBoxl.SizeMode=PictureBoxSizeMode.Stretchimage;D.this.PictureBoxl.SizeMode=PictureBoxSizeMode.Centerlmage;
2.在.NET中,文本框控件的(A)属性用来设置其与否是只读的A.ReadOnlyB.LockedC.LockD.Style
3、在WinForm应用程序中,可以通过如下(C)措施使一种窗体成为MDI窗体A.变化窗体的标题信息B.在工程的选项中设置启动窗体C.设置窗体的IsMdiContainer属性D.设置窗体的ImeMode属性
4、WinFonns程序中,假如复选框控件的Checked属性值设置为True,表达(A)A.该复选框被选中B.该复选框不被选中C.不显示该复选框的文本信息D.显示该复选框的文本信息
5、在Winforms窗体中,有一名为txtUser的TextBox控件,其MaxLength属性为5,该控件的目前文本为“网络编程”,若再执行代码:txtUser.AppendText(“高手”);则控件的文本为(C)A.网络编程B.网络编程高C.网络编程高手D.出现运行时错误
6.在.NET(C#)中,Appplication.Exit还是Form.Close有什么不一样答一种是退出整个应用程序,一种是关闭其中一种form
7.怎么让一种窗口居中显示?this.StartPosition二System.Windows.Forms.FormStartPosition.CenterScreen;第4部分ADO.NET与XML编程
1.在.NET的WinForms程序中,可以使用ADO.NET技术来连接和访问数据库
2.ADO.NET中常用的对象:Connection:连接对象.传递连接字符串,以连接数据库DataCommand:命令对象传递T-sql语句或者存储过程,以执行对数据库的查询与操作DataAdpater:适配器对象管理Command对像重要用于查询或更新数据DataReader:数据读取器对象迅速、以向前、不停开连接的状况下读取数据DataSet:数据集对象从数据库中取出数据,保留到内存,即可断开连接
3.什么是XML答XML即可扩展标识语言extensible MarkupLanguage.标识是指计算机所能理解的信息符号,通过此种标识,计算机之间可以处理包括多种信息的文章等怎样定义这些标识,即可以选择国际通用的标识语言,例如HTML,也可以使用象XML这样由有关人士自由决定的标识语言,这就是语言的可扩展性XML是从SGML中简化修改出来的它重要用到的有XML、XSL和XPath等。
个人认证
优秀文档
获得点赞 0