C#面向对象程序设计知识点汇集.doc

上传人:PIYPING 文档编号:10744359 上传时间:2021-06-02 格式:DOC 页数:33 大小:917KB
返回 下载 相关 举报
C#面向对象程序设计知识点汇集.doc_第1页
第1页 / 共33页
C#面向对象程序设计知识点汇集.doc_第2页
第2页 / 共33页
C#面向对象程序设计知识点汇集.doc_第3页
第3页 / 共33页
C#面向对象程序设计知识点汇集.doc_第4页
第4页 / 共33页
C#面向对象程序设计知识点汇集.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《C#面向对象程序设计知识点汇集.doc》由会员分享,可在线阅读,更多相关《C#面向对象程序设计知识点汇集.doc(33页珍藏版)》请在三一文库上搜索。

1、C#面向对象程序设计知识点汇集第一章:C#入门1namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。 namespace 命名空间名 /类的定义2using关键字 using关键字用于导入命名空间 using命名空间名;3class关键字class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4Main()方法C#程序必须且只能包含一个Main()方法,它是程序的入口点。static void Main(string args)static void Main()static int Main(string args

2、)static int Main()5行输出方法语句“Console.WriteLine(Hello .NET!);”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6C#程序结构C#程序的组成要素如下:1) 命名空间:命名空间包含一个或多个类。2) 类。3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。6) 大括号:在C#中,括号“”和“”是一种范

3、围标志,表示代码层次的一种方式。 7C#程序书写格式1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当 作两个不同的字符对待 。3) 程序注释 (1) 单行注释,以双斜线“/”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“/”,若有多行文档注释,每一行都用“/”开头。8Console类Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。 q 编写一个控制台应用程序,输入字符串“I love this game!”,

4、在屏幕上输出。using System;q using System.Collections.Generic;q using System.Text;q namespace Hello.NETq q class Programq static void Main(string args)q q Console.WriteLine(I love this Game!);q q q 相关知识及注意事项1对象、类、属性和方法1) 类和对象2) 属性每个对象都有自己的特征和行为,对象的静态特征称为对象的属性 3) 方法方法是对象的行为特征,是一段可以完成特定功能的代码 2事件和事件驱动 事件就是预先定

5、义好的、能被对象识别的动作。 通过随时响应用户或系统触发的事件,并做出相应响应的机制就叫做事件驱动机制。 3窗体对象 4控件对象1) 按钮控件 按钮(Button)控件用于接收用户的操作信息,激发相应的事件,按钮是用户与程序交互的主要方法之一。 2) 文本框控件 文本框(TextBox)控件用于获取用户输入的信息或向用户显示文本信息,图1.17用于显示信息的白色框就是文本框 5控件的基本操作 有两种方法:第一种是按住Shift键或Ctrl键不放,然后单击每个要选择的控件;第二种是把光标移到窗体中的适当位置,然后拖动鼠标画出一个矩形,选中矩形内的控件(包括边线所经过的控件)。 1填空题 (1)

6、.NET 框架具有两个主要组件:_和_ 。 (2) 使用VS.NET开发的每一个应用程序称为_ ,它可以包括一个或多个 _ 。 (3) 命名空间是类的组织方式,C#提供了关键字_来声明命名空间,提供了关键字_来导入命名空间;如果要使用某个命名空间中的类,还需要添加对该命名空间所在_ 的引用。 (4) C#语言程序必须包含并且只能包含一个的方法(函数)是_,它是程序的入 口点。 (5) C#程序中的语句必须以_作为语句结束符。 (6) Console 类是System 命名空间中的一个类,用于实现控制台的基本输入输出,该类中有两个常用的方法,一个是功能为“输出一行文本”的方法_,另一个是功能为“

7、输入一行文本”的方法_ 。 2.选择题(1) 下面_是C#中的单行注释。 A/*注释内容*/ B/注释内容 C/注释内容 D Note 注释内容 (2) C#中以_作为源文件的扩展名。 A.c B.cpp C.cs D.exe (3) 关于C#程序书写格式,以下说法错误的是_.A缩进在程序中是必须的 BC#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待 C注释是给程序员看的,不会被编译,也不会生成可执行代码 D在C#中,大括号“”和“”是一种范围标志,大括号可以嵌套 3.简答题(1) 简述C#程序的组成要素。答:C#程序的组成要素如下:命名空间、类、方法、语句、关键字、大括号

8、“”和“”。(2) 简述Windows应用程序编程步骤。答:在VS.NET中开发Windows窗体应用程序的步骤如下: 新建项目; 设计程序界面,包括添加控件和设置控件属性; 编写代码; 保存程序; 运行调试程序。(3) 简述对事件驱动机制的理解。 答:当用户或系统触发事件时,对象就会响应事件,实现特定的功能,这种通过随时响应用户或系统触发的事件,并做出相应响应的机制就叫做事件驱动机制。响应事件时执行的代码称为事件处理程序。开发应用程序时编程人员的主要工作之一就是针对控件可能被触发的事件设计适当的事件处理程序。第二章:C#语法基础1常量与变量 有的量在过程中不起变化,就把其称为常量; 有的量在

9、过程中是变化的,也就是可以取不同的数值,就把其称为变量。 在C#中程序设计人员可以根据程序设计的需要,给存放常量和变量的内存地址取一个有意义的名字,分别叫做常量名和变量名。可以通过const关键字来定义常量,语法如下: const 数据类型标识符 常量名=数值或表达式;说明(1) 一旦定义常量,就要赋初值,且这个常量的值在程序运行过程中是不允许改变的。(2) 定义常量时,表达式中的运算符对象只允许出项常量和常数,不允许出现变量。(3)不论常量和变量,都必须先定义后使用。变量的定义和赋值语法如下:数据类型标识符 变量名=数值或表达式;说明:(1) 语法中的 表示可选,就是说 中的内容写或不写都不

10、会导致语法错误。(2) 在对变量进行赋值时,数值或表达式的值类型必须同变量的类型相同。2C#变量命名规则为变量起名时要遵守C#语言的规定。(1) 变量名必须以字母开头。(2) 变量名只能由字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其他符号。(3) 变量名不能与C#中的关键字名称相同。(4) 变量名不能与C#中的库函数名称相同。(5) 允许在变量名前加前缀“”。 说明:可以使用前缀“”加上关键字作为变量的名称。这主要是为了与其他语言进行交互时避免冲突。因为前缀“”实际上并不是名称的一部分,其他的编程语言就会把它作为一个普通的变量名。在其他情况下,不推荐使用前缀“”作为变量名的一部

11、分。3变量的定义和赋值语法如下:数据类型标识符 变量名=数值或表达式;说明: (1) 语法中的 表示可选,就是说 中的内容写或不写都不会导致语法错误。 (2) 在对变量进行赋值时,数值或表达式的值类型必须同变量的类型相同。 如果数值或表达式的值类型与变量的类型不相同,但数值或表达式的值类型所表示的数值范围比被赋值变量的类型所表示的范围要小,是允许赋值的。事实上C#在内部进行了一次数值类型的转换,这种转换叫隐式转换。关于数据类型和隐式转换将在后面讲述。数值类型包括: 整数类型、字符类型、浮点数类型、布尔类型、结构类型、枚举类型。引用类型包括: 类类型(如string类)、数组类型、接口类型、代理

12、类型。C#的数据类型体系如图所示。4整数类型 C#有8种整数类型: (1)短字节型(sbyte) 有符号8位整数 (2)字节型(byte) 无符号8位整数 (3)短整型(short) 有符号16位整数(4)无符号短整型(ushort) 无符号16位整数 (5)整型(int) 有符号32位整数 (6)无符号整型(uint) 无符号32位整数 (7)长整型(long) 有符号64位整数 (8)无符号长整型(ulong) 无符号64位整数5浮点数类型 C#支持3种基本浮点数:(1)表示单精度的float,精度7位(2)表示双精度的double,精度15-16位(3)表示财务计算用途的decimal,

13、精度29位在程序中书写一个十进制的数值常数时,C#默认按照如下方法判断一个数值常数属于哪种C#数值类型。(1) 如果一个数值常数不带小数点,如3456,则这个常数的类型是个整数。(2) 对于一个属于整型的数值常数,C#按如下顺序判断该数的类型:int,uint,long,ulong。(3) 如果一个数值常数带小数点,如1.2,则该常数的类型是浮点型中的double类型。 可以通过在数值常数后加后缀的方法来指定数值常数的类型。 (1) u(或U)后缀:加在整型常数后面,代表该常数是uint类型或ulong类型,具 体哪种,由常数的实际值决定。C#优先匹配uint类型。(2)l(或L)后缀:加在整

14、型常数后面,代表该常数是long类型或ulong类型, 具体哪种,由常数的实际值决定。C#优先匹配long类型。(3)ul(或uL、Ul、UL、lu、lU、LU)后缀:加在整型常数后面,代表该常数是ulong类型。 (4)f(或F)后缀:加在任何一个数值常数后面,代表该常数是float类型。(5)d(或D)后缀:加在任何一个数值常数后面,代表该常数是double类型。 (6)m(或M)后缀:加在任何一个数值常数后面,代表该常数是decimal类型。 如果所指定的数据符号不能用指定类型表示,在编译时会产生错误。 当用两种浮点型执行运算时,可以产生以下的值:正零和负零、+Infinity和-Inf

15、inity(正无穷大或负无穷大)、NaN(非数字值Not-a-Number)。6字符类型 用来表示字符数据常量时,共有以下几种不同的表示方式。(1) 用单引号将单一个字符包括起来,例如:A、n、u。(2) 用原来的数值编码来表示字符数据常量,例如:a是97,v是118。(3) 还可以直接通过十进制转义符(前缀x)或Unicode表示法(前缀u)表示字符数据常量,例如:x0032、u5495。(4) C#提供了转义符,用来在程序中指代特殊的控制字符 :(见p36)- 33 - 0 r t7字符串类型 字符串类型是一个char类型的序列。 定义一个字符串的语法如下: string 变量名=字符串值

16、;例: string str; string str=“c#”; string str=Console.ReadLine( );8布尔类型 布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。 布尔类型只有两个值:true和false。 通常占用1个字节的存储空间 布尔类型还有一个特点:不能进行数据类型转换。9枚举类型 枚举类型是一种用户自定义的数值类型,它提供了一种简便可以创建一组有结构的符号来表示常量值,有助于程序设计人员更好地调试和维护程序。1) 枚举类型的定义 枚举定义用于定义新的枚举类型。枚举声明以关键字enum开始,然后定义枚举的名称、可访问性、基类型和成员。 语法

17、如下:访问修饰符 enum 枚举标识名:枚举基类型 默认的基类型为int枚举成员=整型常数,枚举成员=整型常数,; 枚举成员不能同名2) 枚举成员的赋值 在定义的枚举类型中,每一个枚举成员都有一个常量值与其对应,默认情况下枚举的基类型为int,而且规定第一个枚举成员的取值为0,它后面的每一个枚举成员的值加1递增。(1) 如果某一枚举成员赋值了,那么枚举成员的值就以赋的值为准。在它后面的每一个枚举成员的值加1递增,直到下一个赋值枚举成员出现为止。 (2) 每个枚举成员都有一个关联的常量值。该值的类型是包含该值的枚举的基类型。每个枚举成员的常量值必须在该枚举的基类型的范围内。 (3) 多个枚举成员

18、可以共享相同的常量值。 3) 枚举成员的访问在C#中可以通过枚举名和枚举变量这两种方式来访问枚举成员。(1) 通过枚举名访问枚举成员的形式如下:枚举名. 枚举成员;(2) 在通过枚举变量访问枚举成员之前,首先要定义一个枚举类型变量。语法如下: 枚举类型名 变量名;然后再通过枚举变量访问枚举成员,语法如下: 枚举变量名.枚举成员10结构类型 结构类型也是一种用户自定义的数值类型,它是指一组由各种不同数据类型的相关数据信息组合在一起而形成的组合类型。把一系列相关的变量组织成为一个单一实体的过程,称为生成结构的过程。这个单一实体的类型就叫做结构类型。1) 结构的定义结构的定义语法如下:访问修饰符 s

19、truct 结构标识名 :基接口名列表/结构成员定义说明:(1) 结构成员包括各种数据类型的变量、构造函数、方法、属性、索引器。(2) 结构可以实现接口。q 举例1:结构的定义q struct judgeq string name;q float score;q 2) 结构类型成员的访问 用结构变量访问结构成员。在通过结构变量访问结构成员之前首先要定义一个结构类型变量。语法如下:结构类型名 变量名;然后再通过结构变量访问结构成员,语法如下:结构变量名.结构成员;q 举例2:结构类型变量的定义q judge judge1;q judge1. name=Console.ReadLine( );3)

20、 结构与类的区别(1) 两者的类型不同,结构是数值类型,类是引用类型。(2) 结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项,而类都可以。(3) 结构不能声明默认构造函数(没有参数的构造函数)或析构函数,也就是说结构可以声明构造函数,但它们必须带参数,而类都可以。(4) 结构的实例化可以不使用new运算符,而类都不可以而类的实例化都必须使用new运算符 。(5) 一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,而类继承自System.Object。(ValueType派生自Object,最终基类都是Objec

21、t。)如何选择使用结构还是类,可以参照以下几点。(1) 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些 。(2) 结构表示如点、矩形和颜色这样的轻量对象,例如(3) 在表现抽象和多级别的对象层次时,类是最好的选择。 (4) 大多数情况下该类型只是一些数据时,结构是最佳的选择 。11类型转换 在程序设计中,有时要进行数据类型的相互转换,如被赋值的变量或方法的形式参数的类型与实际的对象类型不同,就需要进行类型转换。 C#中有两种转化方式:隐式转换和显示转换。当发生类型转换时,被赋值的变量或方法的形参的类型称为目标类型,而实际对象的类型称为源类型。1)隐式转换 当发生类型转换时,如果

22、在代码中没有明确指定目标类型,则称为隐式转换。也就是说隐式转换是系统默认的、不需要加以声明就可以进行的转换。在隐式转换过程中,编译器不需要对转换进行详细的检查就能安全地执行转换。小类型-大类型安全的转换(不会丢失数据)系统自动完成注意:(1)从 int、uint 或 long 到 float 的转换以及从 long 到 double 的转换的精度可能会降低,但数值大小不受影响。 (2)不存在到 char 类型的隐式转换。(3)不存在浮点型与 decimal 类型之间的隐式转换。 2) 显式转换 当发生类型转换时,如果在代码中明确指定目标类型,则称为显式转换。显式转换也称为强制型转换,一般在不存

23、在该类型的隐式转换时才使用。 语法格式如下: (类型标识符)表达式 这样就可以将表达式的值的数据类型转换为类型标识符的类型。 例如:(int)6.143 /把float类型的6.143转换为int类型大类型-小类型不安全的转换(可能丢失数据)显式声明3) 负责数据类型转换的Convert类 Convert类用于将一个基本数据类型转换为另一个基本数据类型,返回与指定类型的值等效的类型; 受支持的源类型是Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime和Stri

24、ng。属于显示转换常用于不同类型之间的数据转换 (1) 从某数据类型到它本身的转换只返回该数据类型,不实际执行任何转换。(2) 无法产生有意义的结果的转换引发InvalidCastException(指定的转换无效)的异常,不实际执行任何转换。下列转换会引发异常:从Char转换为Boolean、Single、Double、Decimal或DateTime,以及从这些类型转换为Char;还有从DateTime转换为除String之外的任何类型,以及从任何类型(String除外)转换为DateTime。(3) 任何数据类型(上面描述的数据类型除外)都可以与任何其他数据类型进行相互转换。4) 数据类

25、型转换的Parse()方法 每个数值数据类型都包含一个Parse()方法,它允许将字符串转换成对应的数值类型。 例如: string s1=9,s2=9.423; int m=int.Parse(s1); /将s1转换成整数类型 Float n=float.Parse(s2);/将s2转换成浮点类型q Random类中next方法的使用例子: Random rd=new Random(); int n=rd.Next(100,500) 这样N就是一个100到500之间的一个随机数。Math类中sqrt方法的使用Math.Sqrt( 常量、变量或表达式 );返回指定数字的平方根。 运算符是表示各

26、种不同运算的符号。表达式是由变量、常量、数值和运算符组成的,是用运算符将运算对象连接起来的运算式。表达式在经过一系列运算后得到的结果就是表达式的结果,结果的类型是由参加运算的操作数据的数据类型决定的。C#语言中有丰富的运算符。在C#中运算符的种类分为以下几类。1算术运算符 算术运算符用于各类数值运算,包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减(-)共7种。 其中%是求余运算,例如:“x=7%3”,则x的值为1,因为7/3的余数为1。 由算术运算符将运算对象连接起来的式子叫做算术表达式。有一些特殊的运算,例如开方、平方,C#没有提供相应的算术运算符。但在

27、System命名空间里的Math类提供了这样的运算。 常用的方法有以下几种。(1) Math.Abs(数据类型 x):返回x的绝对值。(2) Math.pow(double x,double y):返回x的y次方。(3) Math.sqrt(double x):返回x的开根号值。还有一种产生随机数的Random类,它的方法要用Random类的对象来调用。常用的方法有以下几种。(1) Next():返回一个整数的随机数。(2) Next(int maxvalue):返回小于指定最大值的正随机数。(3) Next(int minvalue,int maxvalue):返回一个大于等于minvalu

28、e且小于 maxvalue的整数随机数。(4) NextDouble():返回一个0.01.0之间的double精度的浮点随机数。2关系运算符 关系运算符用于比较运算,比较两个值的大小。关系运算符包括大于()、小于(=)、小于等于(=)和不等于(!=)6种。 关系运算的结果类型是布尔类型。如果关系运算两边的运算对象是布尔类型的对象,那么true等于true,false等于false,而true是大于false的。 由关系运算符将运算对象(表达式)连接起来的式子叫做关系表达式。3逻辑运算符 逻辑运算符用于逻辑运算,包括与(&)、或(|)、非(!)共3种。 逻辑运算的结果类型是布尔类型,而且逻辑运

29、算两边的运算对象的数据类型都为布尔类型。 与运算的结果为:只有两个运算对象都为true时,结果才为true;只要有一个是false,结果就为false。 或运算的结果为:两个运算对象中只要有一个为true时,结果就为true;只有两个运算对象都是false,结果才为false。 非运算的结果是原运算对象的逆:如果原运算对象是true,则运算结果为false;如果原运算对象是false,则运算结果为true。 由逻辑运算符将运算对象(逻辑值或表达式)连接起来的式子叫做逻辑表达式。4位操作运算符 参与位操作运算的量,按二进制位进行运算。位操作运算符包括位非()、位与(&)、位或(|)、位异或()、

30、左移()共6种。 1) 位逻辑非运算 位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。 例如,对二进制的10010001进行位逻辑非运算,结果等于01101110,用十进制表示就是145等于110;对二进制的01010101进行位逻辑非运算,结果等于10101010。用十进制表示就是85等于176。 2) 位逻辑与运算 位逻辑与运算是将两个运算对象按位进行与运算。与运算的规则是:1与1等于1,1与0等于0。例如,10010001(二进制)&11110000等于10010000(二进制)。

31、3) 位逻辑或运算 位逻辑或运算是将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,0或0等于0。例如,10010001(二进)|11110000(二进制)等于11110001(二进制)。 4) 位逻辑异或运算 位逻辑异或运算是将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,1异或0等于1,0异或0等于0。即:相同得0,相异得1。 例如,10010001(二进制)11110000(二进制)等于01100001(二进制)。5) 位左移运算 位左移运算是将整个数按位左移若干位,左移后空出的部分填0。例如,8位的byte型变量byte a=0x65(即二进制的

32、01100101),将其左移3位(a3)的结果是0x0c(即二进制的00001100)。5赋值运算符 赋值运算符用于赋值运算,就是将一个数据赋予一个变量,它分为3类:(1)简单赋值(=)、(2)复合算术赋值(+=,-=,*=,/=,%=)(3)复合位运算赋值(&=,|=,=,=,= 90) Console.WriteLine(优秀!);else if (score = 80) Console.WriteLine(良好!);else if (score = 70) Console.WriteLine(一般!);else if (score = 60) Console.WriteLine(及格!)

33、;else Console.WriteLine(不合格!);if (score = 90) c=a;else if(score=80) c=b;else if(score=70) c=c; else if(score=60) c=d;else c=e;switch(c)case a: Console.WriteLine(优秀!);break;case b: Console.WriteLine(良好!);break;case c: Console.WriteLine(一般!);break;case d: Console.WriteLine(一般!);break;case e: Console.W

34、riteLine(一般!);break; 执行switch语句的步骤为:(1)当代码执行到此语句时,先执行switch后面( )中的表达式。(2)然后将表达式的运算结果与 中case后面“可能性的值”逐个匹配,如果与某个“可能性的值”匹配成功,则进入相对应的case代码段,如果匹配都不成功,则进入default语句,执行默认代码段。(3)如果没有default语句,则跳出switch语句。其中,每个case代码段内都应该带有一个break语句,用来从当前选择中跳出,如果没有break语句,则不跳出选择,执行case后面的语句。1Checked属性Checked属性是单选按钮、复选框的一个属性,

35、它表示单选按钮、复选框是否被选中。true表示单选按钮、复选框被选中,false表示未被选中。2Enabled属性Enabled属性允许在运行时使窗体和控件成为有效或无效。有效为true,无效为false。3CheckedChanged事件当Checked属性值改变时,触发CheckedChanged事件。当选中“普通会员”单选按钮时,就触发了它的CheckedChanged事件,普通会员是不可选择“赠送礼品”的,所以设置“赠送礼品”复选框的Enabled属性为false。同理当选中“VIP”单选按钮时, 就触发了它的CheckedChanged事件,VIP是可以选择“赠送礼品”的,所以设置“

36、赠送礼品”复选框的Enabled属性为true。循环结构是在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。1while语句while语句先计算表达式的值,值为true则执行循环体;反复执行上述操作,直到表达式的值为false时止。 语法如下: while (表达式) 循环体 执行while语句的步骤为:(1) 执行while后面( )中的表达式;(2) 当表达式的运算结果为true,则执行循环体,否则跳过步骤(3),直接执行步骤(4);(3) 反复执行(1)、(2)步骤,直到表达式的运算结果为false时止;(4) 执行while语句块后面的代码。说明:(1)while语句中的表达式一般

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1