第3章C编程基础.ppt
《第3章C编程基础.ppt》由会员分享,可在线阅读,更多相关《第3章C编程基础.ppt(85页珍藏版)》请在三一办公上搜索。
1、2010.07,第3章 C#编程基础,学习要点,1.了解C#程序的一般结构、标识符的命名规则以及C#关键字2.理解C#常用的简单值类型、复合值类型,了解C#的引用类型3.掌握不同数据类型之间的转换,理解装箱和拆箱的概念4.掌握常量和变量的概念及数组的声明和使用方法5.掌握运算符和表达式的概念以及常用流程控制语句的使用,3.1 一个简单的C#程序设计,【示例代码:chpt3-1a MyFirstProgram】(1)在Visual Studio 2005中新建一个C#控制台应用程序项目。(2)在代码编辑器中编写控制台应用程序的源代码文件Program.cs,其代码(注意C#语言严格区分大小写字母
2、)如下:using System;using System.Collections.Generic;using System.Text;namespace MyFirstProgram class Program static void Main(string args)/设置控制台窗口的标题 Console.Title=例chpt3-a;Console.WriteLine(C#语言程序设计n一个简单的控制台程序);Console.Read();,3.1 一个简单的C#程序设计,(3)按下键或选中“调试”“启动调试”菜单命令编译并运行此程序。其结果如图所示。我们还可以在其他开发环境中编辑运行这
3、个C#程序。下面我们对这个程序进行简要分析。,3.1 一个简单的C#程序设计,3.1.1 命名空间 程序中经常要定义很多类和方法,为了便于组织和管理,C#语言引入了命名空间(namespace)的概念。命名空间相当于一个容器,它包含一组定义的类或结构,命名空间也可以嵌套在另一个命名空间中,就像文件目录一样。using System;using System.Collections.Generic;using System.Text;.NET 类库提供了很多类,根据类的功能不同,又划分了很多命名空间,而这些命名空间大多数有一个顶级的命名空间 System,Text 和Collections.Ge
4、neric都是其下嵌套的命名空间。,3.1 一个简单的C#程序设计,要调用命名空间下的某个类提供的方法,可以使用下面的语法:命名空间.命名空间.命名空间.实例名称.方法名(参数,);例如:System.Console.WriteLine(我的第一个C#程序);在C#应用程序中,一般在程序的开头使用关键字using来引入命名空间:using 命名空间;然后就可以自由的使用名称空间下的各种类。比如前面的例子就是在程序的开始时写了:using System;因此,在后续程序中就可以直接写:Console.WriteLine(我的第一个C#程序);用户也可以使用关键字namespace创建自定义的命名
5、空间:namespace 命名空间名;,3.1 一个简单的C#程序设计,3.1 一个简单的C#程序设计,3.1.2 Main方法 每个应用程序包含了很多的方法,但执行必须有一个起点,也叫入口点,C#规定入口点的方法名必须为Main!示例程序中的第8行定义了该程序的入口方法:static void Main(string args)其中,static表示该方法是静态的,void表示该方法没有返回值。Main方法的返回值只能是void类型或int类型。int类型的返回值表示应用程序结束时的终止状态代码,0表示成功返回,非0值表示错误异常编号。void类型则没有返回值。每个C#控制台和Windows
6、应用程序中,必须有一个类包含名为Main的静态方法。如果有多个类都定义了Main方法,则必须指定其中一个为主方法作为入口点。,3.1 一个简单的C#程序设计,3.1.3 程序代码注释 C#语言中常规的注释方法有两种:1.单行注释 以“/”符号开始,本行中任何位于“/”之后的字符都是注释信息。2.多行注释 以“/*”作为注释的开始,以“*/”作为注释的结束。在“/*”和“*/”之间的所有文字都是注释信息。例如:/*这是多行注释,上下共三行*/在Visual C#中最有特点的是可以使用 XML 的格式添加注释。,3.1 一个简单的C#程序设计,3.1.4 控制台的输入与输出 在Windows操作系
7、统中,控制台应用程序的输入输出是通过命令提示符窗口进行的。用户可以在程序中调用方法向命令提示符窗口输出文本,也可以调用方法从命令提示符窗口读取一行或一个来自键盘输入的字符。主要通过Console类完成控制台的输入输出功能。例如示例程序中:Console.WriteLine(C#语言程序设计n一个简单的控制台程序);Console.Read();,3.1 一个简单的C#程序设计,1.控制台输入 C#语言在Console类中提供了三种公共方法从命令提示符窗口获取输入:Read()、ReadKey()和ReadLine()。Console.Read()方法从命令提示符窗口获取一个字符的整数形式,它所
8、对应的数据类型是int类型,遇到“Enter”键时终止。要获得实际的字符,就需要将得到的整数形式转换成字符。int code;char character;code=Console.Read();/输入字母r,code=114 character=(char)code;/将整数转换成字符,3.1 一个简单的C#程序设计,Console.ReadLine()方法Console.Read()方法从命令提示符窗口获取一行字符串,直到遇到“Enter”键时终止,返回数据类型是string类型,如果要获得int类型或double类型的数值,就需要进行转换。string name,AgeString;in
9、t Age;/获取姓名,赋给字符串类型变量name name=Console.ReadLine();/获取年龄,赋给字符串类型变量AgeString AgeString=Console.ReadLine();/使用年龄前,需将字符串类型转换成整数类型 Age=Conver.ToInt32(AgeString);,3.1 一个简单的C#程序设计,Console.ReadKey()方法获取用户按下的一个字符或功能键,并立即终止返回一个ConsoleKeyInfo结构的对象。ConsoleKeyInfo flag;do flag=Console.ReadKey();while(flag.Key!=C
10、onsoleKey.Escape);/等待用户按下键,3.1 一个简单的C#程序设计,2.控制台输出 C#语言在Console类中提供了两种公共方法向命令提示符窗口输出字符串:Write()和WriteLine()。这两种方法都是将各种值类型数据或对象转换为字符串写入标准输出流,即输出到命令提示符窗口,但是WriteLine()在输出数据后,还输出回车符(“r”)和换行符(“n”)。int age=20;string name=韩梅梅;Console.Write(name);/输出字符串name,不换行 Console.Write(年龄是:);/输出字符串“年龄是:”,不换行 Console.
11、Write(0rn,age);/输出字符串“20”,换行最后三句的输出,用Console.WriteLine()方法写成:Console.WriteLine(0年龄是:1,name,age;从上面的语句也可以看出Write()和WriteLine()调用参数的方法。,3.2 标识符和关键字,3.2.1 标识符 标识符最多可以由511个字符组成,需要遵循下列命名规则:由字母、数字和下划线“_”组成。首字符必须是字母或下划线“_”。C#语言对字母大小写敏感。两个标识符即使是对应的字母大小写不同,也是完全不同的标识符。标识符不能与关键字同名。C#语言采用Unicode字符集,因此“字母”和“数字”的
12、定义比常用的ASCII字符集(Unicode的一个子集)要广泛的多。标识符中的一个字母即使字体发生改变,也会成为新的标识符。,下面是合法的标识符:Abcabc123class,下面是不合法的标识符:abc!/含有特殊字符“!”7abc/非法的首字符abc 123/含有空格class/“class”是关键字,不能使用关键字作为标识符,3.2 标识符和关键字,3.2.2 关键字 C#语言保留77个标识符作为关键字,用户不应重用这些标识符。每个关键字都有特定的含义和用途,例如在示例中已经使用过的关键字using、namespace和calss。,3.3 值类型,C#是强类型语言,即每个变量和对象都必
13、须具有声明的数据类型。从用户的角度,数据类型可分为内置数据类型(如int、char等.NET Framework预定义好的类型)和用户自定义数据类型(如class、interface等,由用户声明创建)。从数据存储的角度,则可分为值类型、引用类型和指针类型(不符合公共语言规范)。指针类型只在不受托管的代码中使用;值类型用于存储数据的值,包括简单值类型、结构类型和枚举类型;引用类型用于存储对实际数据的引用地址,包括类类型、接口类型、委托类型和字符串类型等。,3.3 值类型,值类型和引用类型的区别:当一个值类型的变量赋给另一个值类型的变量时,会在堆栈(stack)中保存两个相同的值;而一个引用类型
14、的变量赋给另一个引用类型的变量时,会在堆栈中保存对同一个堆(heap)的位置的引用。每个值类型变量都有独立的值,对其进行数据操作不会影响到其他的值类型变量;而对引用类型变量进行数据操作,就是对该变量所引用的堆中的数据进行操作,从而会影响到引用同一个堆的其他引用类型变量。,3.3 值类型,3.3.1 简单值类型1.整型 整型的数据值都是整数。C#语言提供了8种整型:sbyte、byte、short、ushort、int、uint、long、ulong。它们的取值范围和占用存储空间位数各有不同,定义变量时要选择合适的数据类型,过长的类型会浪费存储资源,过短的类型不足以满足变量的变化范围。,下面的语
15、句是正确的:int a;a=321;/先定义,再赋值long b=321;/先隐式转换,再赋值long c=0 x12aL;/十六进制表示int x1=10,x2,x3=30;/可以在一个语句中声明多个变量,下面的语句是错误的:uint x=-49;/无符号整数不能为负byte x=300;/超出取值范围short y;Console.WriteLine(y);/变量在赋值前不能被使用,3.3 值类型,2.浮点型 浮点型包括单精度(float)和双精度(double)两种,分别采用32位单精度和64位双精度的IEEE 754格式表示。float型变量赋值时应在数值后加上类型指示符F,因为默认情
16、况下赋值运算符右侧含数值被视为double型。下面的语句都是正确的:float x=3.5F;double y=4.5;,3.3 值类型,3.小数(decimal)型 小数(decimal)型是特殊的浮点型数据,它是128 位的数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算(小数部分的舍入方法采用的是银行家舍入方式)。4.布尔(bool)型 布尔(bool)型用于声明变量来存储布尔值true和false,可将布尔值赋给bool变量,也可以将计算为bool类型的表达式赋给bool变量。bool型主要用于逻辑判断。bool型正确用法如下:bool
17、 i=true;bool a=(i0 在计算机内部实际上是用二进制1和0表示布尔值true和false。,3.3 值类型,4.字符(char)型 字符(char)型用于声明16位的Unicode 字符。C#语言中字符型的变量可以使用字符、加十六进制的转义符前缀(“x”)和Unicode表示形式来进行赋值。例如:char c1=B;/字符表示的字母“B”赋值给变量c1 char c2=x0042;/字符表示的字母“B”赋值给变量c2 char c3=u0042;/字符表示的字母“B”赋值给变量c3,3.3 值类型,3.3.2 结构类型(struct)结构类型是一种值类型,通常用来封装小型相关变量
18、组。声明结构类型的语法表达式为:附加声明访问修饰符struct 结构名称:实现的接口结构体;表示里面的内容为可选项。结构体中定义该结构的成员,结构类型的成员可以是数据成员、方法成员、另一个结构类型成员等。例如:struct student public string name;public int ID;public int score;student是结构名称,花括号之间是结构体,name、ID、score都是这个结构的数据成员(此处可称为字段)。,3.3 值类型,【示例代码:chpt3-3aMyStructType】(1)在Visual Studio 2005中新建一个C#控制台应用程序。
19、在新建项目对话框中的“名称”文本框中输入“MyStructType”,确定后,生成一个名为MyStructType的项目。代码编辑器中显示的是控制台应用程序的源代码文件Program.cs的内容。(2)编写如下所示的代码。namespace MyStructType class Program static void Main(string args)student s;/使用结构类型 s.name=赵鹏;/给结构中的字段变量赋值 s.ID=10814;s.score=90;,3.3 值类型,Console.Title=chpt3-3a;Console.WriteLine(学生0的学号是1,他
20、的成绩是2分,s.name,s.ID,s.score);Console.WriteLine(DateTime.Now);Console.Read();struct student/声明结构类型 public string name;public int ID;public int score;,3.3 值类型,运行此程序,得到的结果如图 程序中除了使用了自定义的结构Student之外,还使用了一个预定义的结构DateTime。通过DateTime结构的成员,用户可以方便的调用系统时钟,得到当前年、月、日、时、分、秒、当前时刻、日期、星期几等信息。,3.3 值类型,3.3.3 枚举类型(enum
21、)枚举类型是一种由一组称为枚举数列表的常数组成的独特类型。它的实质就是用标识符来表示一组相互关联的数据。每种枚举类型都有对应的数据类型,可以是除char以外的任何简单值类型。枚举类型是使用关键字enum定义的,声明枚举类型的一般语法表达式为:附加声明访问修饰符enum枚举变量名称:数据类型枚举列表;,3.3 值类型,枚举列表中成员的默认类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:enum Weekdays Sun,Mon,Tue,Wed,Thu,Fri,Sat;在这个枚举中Sun为0,Mon为1,Tue为2,依次类推。如果需要改变默认的值,则要在定
22、义时改变设定值。例如:enum Weekdays:longSun=1,Mon,Tue,Wed,Thu=22,Fri,Sat;在这个枚举中枚举的成员类型是长整型long,Sun为1,Mon为2,Tue为3,Wed为4,Thu为22,Fri为23,Sat为24。,3.3 值类型,【示例代码:chpt3-3b MyEnumType】(1)在Visual Studio 2005中新建一个C#控制台应用程序。在新建项目对话框中的“名称”文本框中输入“MyEnumType”,确定后,生成一个名为MyEnumType的项目。代码编辑器中显示的是控制台应用程序的源代码文件Program.cs的内容。(2)编写
23、如下所示的代码。namespace MyEnumType class Program enum Weekdays 星期日,星期一,星期二,星期三,星期四,星期五,星期六;static void Main(string args)/声明Weekdays枚举类型的变量mydayWeekdays myday=Weekdays.星期日;Console.Title=chpt3-3b;,3.3 值类型,Console.WriteLine(今天是:0,DateTime.Now.Date.ToShortDateString();/将当前日期强制转换为Weekdays枚举类型 myday=(Weekdays)D
24、ateTime.Now.DayOfWeek;Console.WriteLine(myday);Console.Read();运行此程序,得到的结果如图,3.4 引用类型,引用类型只存储对实际数据的引用地址。C#语言的引用类型包括类、接口、委托、数组、字符串等。本节只介绍object类型、类类型、字符串类型和数组类型。,3.4 引用类型,3.4.1 object类型 object 类型在.NET Framework 中是Object(注意大小写)的别名。在 C#的类型系统中,所有类型(预定义类型、用户定义类型、其他引用类型和值类型)都是直接或间接从Object继承的。因此可以将任何类型的值赋给o
25、bject类型的变量。下面的例子演示了object类型的变量如何接受任何类型的数据的值,以及object类型的变量使用Object的方法。【示例代码:chpt3-4a MyObjectType】(1)在Visual Studio 2005中新建一个C#控制台应用程序。在新建项目对话框中的“名称”文本框中输入“MyObjectType”,确定后,生成一个名为MyObjectType的项目。代码编辑器中显示的是控制台应用程序的源代码文件Program.cs的内容。,3.4 引用类型,(2)编写如下所示的代码。namespace MyObjectType class Program static v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 基础
链接地址:https://www.31ppt.com/p-5639767.html