一 第一章
1 简述.NET框架体系结构的组成
答:包括CLR(公共语言进行时)和框架类库。 2 简述CLR的主要用途
答:它是所有的,NET应用程序运行时环境,是所有.NET应用程序都要使用的编程基础,它如同一个支持.NET应用程序运行和开发的虚拟机。包括CTS和CLS。
CTS-通用类型系统:用于解决不同语言的数据类型不同的问题,所有.NET语言共享这一类型系统,在他们之间实行无缝互操作。
CLS-公共语言规范:最低的语言标准,所有运行在.NET平台上的语言所必须支持的最小特征,以及该语言为其他.NET语言之间互操作所需要的完备特征。
.NET编译技术: 所有运行在.NET平台上的语言都配有自己的编译器,通过这一编译器将应用程序编译为微软中间代码MSIL,再由编译器JIT转换为机器代码,从而实现的跨语言的平台。
.NET框架的主要内容有CLR、框架类库、ADO.NET、XML\ASP.NET、WinForms、WebService等。
二 第二章
1 如何设置字段属性
答:只读属性,只包含get访问器 只写属性,只包含set访问器 读写属性,包含set和get访问器 2 简述C#中属性和字段的区别
答:在C#中,我们可以通过属性来约束对字段的非法的输入,属性也可以被设置成只读。 在C#中我们通常不会去直接访问字段,而是通过访问器访问(get和set),这种实现方式我们称之为属性。
属性是对字段的封装,保证了数据安全性和完整性。
类定义了一组概念的模型,而对象是真实的实体。
三 第三章
1 简述类和结构的区别 答:
类 结构 不同点
引用类型 值类型 可以被继承 不能被继承
可以有默认的构造方法
有默认的无参构造方法,但不能显式定义无参
的构造方法
C#快速入门c#Express2008开...c#与.net编程
可以添加无参的构造方法 可以添加构造方法,但必须是带参数的
创建对象必须使用new 创建对象可以不使用new 类中可以给字段赋值
结构中给字段赋值是错误的
相同点
都可以包含字段和方法 都可以实现接口
枚举是一组指定的常数,它可以用描述性的名称表示,对可能值进行约束。 枚举的定义:enum
类图是表示类的结构和类与类之间关系的图表。
四 第四章
1 简述泛型集合和传统集合的异同 答:
不同点:
泛型可以定义类型安全的数据类型,可以约束泛型内的元素类型。 List<T>和Dictionary<K,V>访问元素时无须类型转换。 相同点:
泛型集合可以作为类中的一个属性。使用泛型集合必须实例化。
五 第五章
1 简述操作读写一个文件的过程 答:
创建一个文件流:FileStream fs=new FileStream(string filePath); 创建阅读器或写入器:StreamReader sr=new StreamReader(fs);
或:StreamWriter sw=new StreamWriter(fs);
执行读写操作:sr.ReadLine(); 或:sw.WriteLine(); 关闭阅读器或写入器:sr.Close(); 或:sw.Close(); 关闭文件流:fs.Close();
文件流的类是FileStream。
StreamWriter是一个写入器,SreamReader是一个读取器。
File类用于对文件进行操作,如复制、删除等,Directory类用于对文件夹操作,它们都是静态类。 常用的方法:判断一个文件或目录是否存在 File.Exists(string filePath);返回bool值,常用作if语句的条件。 XML称为可扩展标记性语言,它主要用于描述数据。读取一个XML文档使用XmlDocument对象,XML节点使用XmlNode对象表示。
六 第六章
1 简述public private protected三种访问修饰符的区别
修饰符 类内部 子类 其他类 public
可以
可以
可以
private 可以 不可以 不可以 protected
可以
可以
不可以
继承必须符合 is a的关系,被继承的类称为父类或者基类,继承其他类的类称为子类或者派生类。
继承机制很好地解决了代码复用的问题。
子类继承父类的成员,并且可以拥有自己特有的成员。 base关键字可以用于调用父类的属性、方法、构造方法。
继承具有传递性,如果class A:B;class B:C,则A也可以访问C的成员。 C#中类的继承具有单根性,一个类只能够同时继承一个父类。 被sealed关键字修饰的类称为密封类,密封类不能被继承。
在子类中,如果不使用base关键字来显示调用基类构造方法,则将隐式调用默认的构造方法。
如果重载的构造方法有一个没有使用base关键字来指明调用父类哪个构造函数,则父类必须提供一个默认的构造方法。
继承模拟了现实世界的关系,继承实现了代码的重用,继承使得程序结构清晰,子类和父类的层次结构清晰,最终的目的是使其子类只关注子类的相关行为和状态,无须关注父类的行为与状态。
七 第七章
1 简述抽象方法和虚方法的区别 答:
虚方法
抽象方法
用virtual修饰 用abstract修饰 有方法体
无方法体
可以被子类override(重写),也可以不被重写 非抽象子类中必须重写 除了密封类外都可以定义
只能在抽象类中定义
2 面向对象的三大特征是什么?简述每个原则的基本功能。 (1)封装:保证对象自身数据的完整性和安全性。
(2)继承:建立类之间的关系,实现代码复用,方便系统的扩展。 (3)多态:相同的方法调用可实现不同的实现方式
多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同相应的行为方式。
抽象方法是一个未实现的方法,它用abstract关键字修饰,含有抽象方法的类必然是抽象类。 使用抽象方法和虚方法都可以实现多态性。
抽象方法要在其子类中通过override关键字重写,除非它的子类也是抽象类。 里氏替换原则:
原则上子类对象是可以赋给父类对象的,也可以说子类可以替代父类。但是反过来,父类对象是不能赋给子类对象的。子类出现的地可以用父类代替。
软件中的设计模式是软件开发中对于某种需求的一种经验的总结,是特定问题经过实践检验的特定解决方法。
简单工厂模式用于在调用者不知道对象属于哪个子类的情况下,创建他们共同的父类。
八 第八章
1 简述抽象类和接口的区别。 答:
抽象类 接口 不同点
用abstract定义
用interface定义 只能继承一个类 可以实现多个接口
非抽象派生类必须实现抽象方法 实现接口的类必须实现所有成员
需要override实现抽象方法
直接实现
相同点
不能实例化
包含未实现的方法 派生类必须实现未实现的方法
IComparable接口有一个未实现的CompareTo()方法,一个类实现这个方法就能够进行排序。 接口是一组规范,是一种标准,遵循这个规范和标准就能实现某种功能。 接口可以让使用者不必关心它内部是如何实现的,方便多人协作开发。 IComparable<T>是IComparable接口的泛型版,它对类型的约束更严格。
IComparer<T>通常称为比较器,它用于比较两个对象的大小,可以作为参数传递给Sort()方法进行排序。
接口作为参数传递的是一个实现了这个接口的对象。接口作为返回值就是要返回一个实现了这个接口的对象。
九 第九章
序列化是将对象的状态存储到特定存储介质中的过程。 反序列化则是将存储介质中的数据重新构建为对象的过程。
标识一个类是否能够序列化要在类的头部添加一个特征[Serializable]
特性其实就是一个类,它的主要功能是对程序中的元素,如类、字段、方法、属性添加描述性的信息。
Internal修饰的成员在同一个程序集中都可以访问,但是其他的程序集中的就不能访问,应用程序中的类,如果不指定访问修饰符,默认就是internal修饰。 序列化(反序列化)的步骤: 命名空间:System.RunTime.Formatters.Binary;
○
1.文件流:FileStream fs=new FileStream(string filePath,FileModel.Create); ○
2.二进制流:BinryFommater bf=new BinaryFommater(); ○3.序列化:bf.Serialize(fs,保存对象); (反序列化):(保存对象)bf.DeSerialize(fs);--------要强制类型转化
○4.关闭文件流:fs.Close();
在.NET框架下开发三层结构数据库应用系统
一 第一章
1 用三层结构开发应用系统有哪些优势?
答:各层之间即相互依赖又互不影响。表示层只负责界面,业务逻辑层是表示层和数据访问层的桥梁,数据访问层直接操作数据库。
2 业务逻辑层的主要职责?
(1)根据业务规则对数据进行加工和处理
(2)与相邻的表示层和数据访问层进行数据交换
二 第二章
1 自定义Dataset的主要步骤 答:
创建Dataset对象 创建DataTable对象
创建DataColumn对象搭建表结构 将创建好的表结构添加到表中 创建DataRow对象新增数据 将数据插入到表中 将表添加到Dataset中
用ADO.NET实现三层结构应用系统是,DataSet的主要作用是三层之间数据传递的载体。 DataView是DataTable的动态数据试图,我们使用DataView的Sort、RowFilter属性实现数据的排序、过滤。
用ADO.NET执行带参数的SQL命令时,我们需要使用参数(Parameters)集合的Add方法为SQL命令添加参数,包括参数名称、参数类型。
三 第三章
用OOP实现三层结构时,实体类是三层结构数据传递的载体。
using在C#中主要有两个用途:一种是作为指令,引用命名空间。另一种是作为语句,用于定义一个范围,在此范围末自动释放对象。
在使用实体类开发三层结构,用户的请求需要返回实体对象集合时,可使用List<T>实现。 在三层结构中,我们使用实体类消除关系数据与类之间的差别,以更好地使用面向对象的思想来实现我们的系统。
四 第四章
在.NET平台下有两种异常。一是由于公共语言运行库引发的异常,另一种是用户应用程序引发的异常。
Exception类有4个常用属性:1 Message 提供异常常用信息。2 Source 提供导致异常发生的应用程序或对象名称。3 StackTrace 提供在堆栈上所调用方法的详细信息,并首先显示最近的调用方法。4 InnerException 对内部异常的引用,如果此异常基于前一个异常,