第3章C.NET语言基础.ppt
《第3章C.NET语言基础.ppt》由会员分享,可在线阅读,更多相关《第3章C.NET语言基础.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本章将以第一个本章将以第一个C#C#程序程序“HelloWorldHelloWorld”为例,向读者演示为例,向读者演示C#C#应用程序的代码组成和应用程序的代码组成和编译过程,然后以开发一个真实的编译过程,然后以开发一个真实的“学生信学生信息管理系统息管理系统”为背景,详细讲述数据类型、为背景,详细讲述数据类型、常量、变量等常量、变量等C#C#语言基础知识。语言基础知识。章节内容章节内容3.1 引言引言3.2 编写第一个编写第一个C#程序程序3.3 数据类型数据类型3.4 常用类型常用类型3.5 常量和变量常量和变量3.6 小结小结 3.1 引言引言计算机中的高级语言(如计算机中的高级语言
2、(如C#、C+等)和现实世等)和现实世界中的人类语言(如汉语、英语等)有很多相似界中的人类语言(如汉语、英语等)有很多相似之处:之处:(1)人类语言中的组成元素有单词、短语、句子、段)人类语言中的组成元素有单词、短语、句子、段落和文章,在计算机高级语言中相对应有常量与变量、落和文章,在计算机高级语言中相对应有常量与变量、表达式、语句、函数和程序。表达式、语句、函数和程序。(2)人类语言中的单词、短语和句子有不同的性质,)人类语言中的单词、短语和句子有不同的性质,如形容词、动词短语、感叹句等,计算机高级语言中的如形容词、动词短语、感叹句等,计算机高级语言中的常量、变量、表达式也有不同的数据类型,
3、如整型常量、常量、变量、表达式也有不同的数据类型,如整型常量、浮点型变量、字符类型表达式等。浮点型变量、字符类型表达式等。了解这些相似之处,对理解和掌握计算机高级语了解这些相似之处,对理解和掌握计算机高级语言会有启发和帮助。言会有启发和帮助。3.2 编写第一个编写第一个C#程序程序 C#应用程序的常用类型主要有应用程序的常用类型主要有3种,分别为控制台应用程种,分别为控制台应用程序、序、Windows窗体应用程序和窗体应用程序和Web应用程序,具体特点应用程序,具体特点分别如下。分别如下。 (1)控制台应用程序是没有窗口的应用程序,通过键盘)控制台应用程序是没有窗口的应用程序,通过键盘以输入命
4、令行的形式操作程序。先前的以输入命令行的形式操作程序。先前的DOS程序大都是这程序大都是这种类型程序,现在一般用作后台服务。种类型程序,现在一般用作后台服务。 (2)Windows窗体应用程序是有窗口的应用程序,主要窗体应用程序是有窗口的应用程序,主要通过鼠标进行操作。因其图形化操作和界面直观等优点,通过鼠标进行操作。因其图形化操作和界面直观等优点,非常受欢迎,当前大多数应用程序都是这种类型。非常受欢迎,当前大多数应用程序都是这种类型。 (3)Web应用程序其实就是将应用程序其实就是将Windows窗体应用程序以窗体应用程序以网页的形式表现出来,是网页的形式表现出来,是Web网站与传统应用程序
5、的结合网站与传统应用程序的结合体。这种类型的应用程序越来越多,有着广泛的应用前景,体。这种类型的应用程序越来越多,有着广泛的应用前景,例如网上办公和网上购物系统,都是这种类型的应用程序。例如网上办公和网上购物系统,都是这种类型的应用程序。 3.2 编写第一个编写第一个C#程序程序控制台应用程序比较简单,通常作为初学控制台应用程序比较简单,通常作为初学者学习的第一种程序类型,用来熟悉最基者学习的第一种程序类型,用来熟悉最基本的语法知识。本节介绍如何在本的语法知识。本节介绍如何在Visual Studio2008下创建下创建C#控制台应用程序控制台应用程序“HelloWorld”。3.2.1 代码
6、结构代码结构创建第一个创建第一个“HelloWorld”控制台应用程序步骤:控制台应用程序步骤:打开打开Visual Studio 2008,在菜单栏中单击【文件】,在菜单栏中单击【文件】|【新建】【新建】|【项目】命令,弹出【新建项目】窗口。此【项目】命令,弹出【新建项目】窗口。此窗口列出了窗口列出了Visual C#能够创建的应用程序类型,选择能够创建的应用程序类型,选择“控制台应用程序控制台应用程序”作为项目类型,并将应用程序的作为项目类型,并将应用程序的名称更改为名称更改为“HelloWorld”,单击【确定】按钮,如图,单击【确定】按钮,如图3-1所示。所示。新建新建“HelloWo
7、rld”项目项目 代码演示代码演示using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace HelloWorld class Program static void Main(string args) Console.WriteLine(Hello World!); Console.ReadLine(); 命名空间命名空间类类入口函数入口函数3.2.1 代码结构代码结构C#程序由命名空间(程序由命名空间(namespace)、类()、类(class)和程序入口函数(和程
8、序入口函数(Main函数)组成。函数)组成。命名空间是类的逻辑组合。命名空间和类的关系命名空间是类的逻辑组合。命名空间和类的关系可以理解为文件夹和文件的关系。使用命名空间可以理解为文件夹和文件的关系。使用命名空间使得类之间更具有组织性,且避免了类的命名冲使得类之间更具有组织性,且避免了类的命名冲突问题。突问题。 如果要创建一个类,要使用如果要创建一个类,要使用namespace给出命名给出命名空间的名称空间的名称;如果使用类,要使用如果使用类,要使用using关键字指关键字指定该类所属的命名空间,或给出类的定该类所属的命名空间,或给出类的“绝对路绝对路径径”,即,即“命名空间名类名命名空间名类
9、名”;如果要使用同;如果要使用同一个命名空间的类,则不需要使用一个命名空间的类,则不需要使用using来引用来引用命名空间。命名空间。 3.2.1 代码结构代码结构类即一组属性和方法的集合。类即一组属性和方法的集合。C#使用类来使用类来搭建整个应用程序,没有全局函数和全局搭建整个应用程序,没有全局函数和全局变量,这也体现了面向对象的程序设计思变量,这也体现了面向对象的程序设计思想。想。Main函数是函数是C#应用程序的入口,即应用程序的入口,即C#应用应用程序执行的第一个函数。程序执行的第一个函数。C#程序由多个类程序由多个类搭建而成,入口就是搭建而成,入口就是Main函数。一个应用函数。一个
10、应用程序中必须有一个程序中必须有一个Main函数且只能有一个函数且只能有一个类包含类包含Main函数,并要求函数,并要求“Main”的首字的首字母大写。母大写。3.2.2 编译运行编译运行编译过程:编译过程:.cs文件文件-.exe可执行程序。可执行程序。对于对于Visual Studio 2008开发平台下的开发平台下的C#应用程序,可单击工具栏中的启动按钮或应用程序,可单击工具栏中的启动按钮或按【按【F5】键(按【】键(按【F5】键进入调试模式,】键进入调试模式,按【按【Ctrl】+【F5】组合键进入非调试模式)】组合键进入非调试模式)来编译运行。来编译运行。程序运行界面程序运行界面运行按
11、钮运行按钮代码分析代码分析using System;表明该程序要使用表明该程序要使用System命名空间下的类,因此用命名空间下的类,因此用using来指明引用的命名空间。如果不指明命名空间,来指明引用的命名空间。如果不指明命名空间,就使用该空间下的类,会出现编译错误。就使用该空间下的类,会出现编译错误。namespace HelloWorld表明该程序使用表明该程序使用namespace关键词声明了一个命名空关键词声明了一个命名空间间HelloWorld,如果其他类要调用该命名空间下定义,如果其他类要调用该命名空间下定义的类,需要使用的类,需要使用using关键词,即关键词,即using H
12、elloWorld。class Program表明该程序使用表明该程序使用class关键词定义了一个类关键词定义了一个类Program,该类属于命名空间该类属于命名空间HelloWorld 代码分析代码分析static void Main(string args)声明了声明了Main函数,函数,static是修饰符(其作用将在后续是修饰符(其作用将在后续章节详细介绍),章节详细介绍),void表明表明Main函数没有返回值,函数没有返回值,string args是参数列表。是参数列表。 Console.WriteLine(Hello World!);使用命名空间使用命名空间System里的里的
13、Console类中的类中的WriteLine函数输出字符串函数输出字符串“Hello World”。如果程序头未引用。如果程序头未引用System命名空间,须使用命名空间,须使用System.Console.WriteLine全称。全称。 Console.ReadLine();调用命名空间调用命名空间System中中Console类中的类中的ReadLine函函数,该函数等待键盘输入,按【数,该函数等待键盘输入,按【Enter】键结束等待。】键结束等待。 3.3 数据类型数据类型当学习某一门人类语言时,例如汉语中的当学习某一门人类语言时,例如汉语中的词组,会发现汉语中的词语有名词和动词词组,会
14、发现汉语中的词语有名词和动词等分类,这称为词性。计算机高级语言的等分类,这称为词性。计算机高级语言的数据有整型和浮点型等,这叫做数据类型。数据有整型和浮点型等,这叫做数据类型。数据类型的作用:数据类型的作用:编译器可根据数据类型判断它们是否可以参加编译器可根据数据类型判断它们是否可以参加某种运算,从而帮助开发人员减少语法错误。某种运算,从而帮助开发人员减少语法错误。 不同的数据类型,在内存中所占字节数不同,不同的数据类型,在内存中所占字节数不同,如果要处理的数据量非常大,选择适合的数据如果要处理的数据量非常大,选择适合的数据类型能够在很大程度上节省内存空间。类型能够在很大程度上节省内存空间。C
15、#数据类型图数据类型图3.3 数据类型数据类型值类型和引用类型是值类型和引用类型是C#中两种主要的数据中两种主要的数据类型;类型;var类型为类型为C#3.5新增类型,详细介绍参见新增类型,详细介绍参见第第13章。章。指针类型仅可用于指针类型仅可用于unsafe模式,用法类似模式,用法类似C+中的指针,这里不再赘述。(中的指针,这里不再赘述。(unsafe模式引用非模式引用非.net DLL提供的如提供的如C编写的编写的外部函数,需要指针来传递该函数外部函数,需要指针来传递该函数 ,优点,优点是可以调用其他是可以调用其他dll的函数,提高了兼容性的函数,提高了兼容性 ;缺点是容易内存泄漏)缺点
16、是容易内存泄漏)数据类型划分依据数据类型划分依据C#数据类型按照数据的存储模型分为值类型、引数据类型按照数据的存储模型分为值类型、引用类型、指针类型和用类型、指针类型和var类型类型 。数据的存储模型指的是数据在内存中的保存方式。数据的存储模型指的是数据在内存中的保存方式。内存中有两个区域可以存放数据,一个是栈区,内存中有两个区域可以存放数据,一个是栈区,另外一个是堆区。栈区存放是编译期间就分配好另外一个是堆区。栈区存放是编译期间就分配好的内存空间,不会动态增长;堆区是程序运行期的内存空间,不会动态增长;堆区是程序运行期间动态分配的内存空间。因此存储在栈中的数据间动态分配的内存空间。因此存储在
17、栈中的数据长度通常较小且固定,存储在堆中的数据可以动长度通常较小且固定,存储在堆中的数据可以动态增长且所需空间通常较大。态增长且所需空间通常较大。值类型的数据存储所需空间通常较小,使用栈区值类型的数据存储所需空间通常较小,使用栈区的内存,而引用类型的数据所需空间较大,使用的内存,而引用类型的数据所需空间较大,使用堆区的内存。堆区的内存。3.4 常用类型常用类型3.4.1 整型整型3.4.2 浮点型浮点型3.4.3 decimal类型类型3.4.4 布尔型布尔型3.4.5 结构体类型结构体类型3.4.6 枚举类型枚举类型3.4.7 string类型类型3.4.8 Object类型类型3.4.9
18、数据类型的转换数据类型的转换3.4.1 整型整型整型就是整数类型,整型就是整数类型,C#整型共有整型共有9种数据类型种数据类型 。类型数值范围特征sbyte-128127有符号8位整数byte0255无符号8位整数charU+0000U+ffff16位Unicode字符short-32,76832,767有符号16位整数ushort065,535无符号16位整数int-2,147,483,6482,147,483,647有符号32位整数uint04,294,967,295无符号32位整数long-9,223,372,036,854,775,8089,223,372,036,854,775,80
19、7有符号64位整数ulong018,446,744,073,709,551,615无符号64位整数3.4.1 整型整型注意:注意:有符号指的是第一位二进制数表示符号,有符号指的是第一位二进制数表示符号,0代表正数,代表正数,1代表负数;无符号指的是所有的位数都用来表示数值,代表负数;无符号指的是所有的位数都用来表示数值,没有符号位,均为正数。例如,没有符号位,均为正数。例如,sbyte是一个有符号是一个有符号8位二进制数,第一位用来表示符号,因此位二进制数,第一位用来表示符号,因此sbyte表示的表示的范围为范围为-128-127;byte是一个无符号是一个无符号8位二进制数,位二进制数,8位
20、全用来表示数值,表示范围为位全用来表示数值,表示范围为0-255,其他类型可以,其他类型可以依此类推。依此类推。char类型也是一种整型,常用来表示字符,由类型也是一种整型,常用来表示字符,由16位二位二进制数组成,表示范围为进制数组成,表示范围为0-65535,代表世界上大多数,代表世界上大多数书面语言符号。这种字符又称为书面语言符号。这种字符又称为Unicode字符,在使字符,在使用时可以写成字符、十六进制和用时可以写成字符、十六进制和unicode字符,例如字字符,例如字符符A可以表示为可以表示为A、x0041和和u0041。 使用整型使用整型 byte age=18; char sex
21、=男男; long StudentNumber=200745054489; 注意,注意,char类型一次只能赋值一个字符,类型一次只能赋值一个字符,不能赋值两个字符,例如不能赋值两个字符,例如男生男生。 注意整型溢出,注意整型溢出,byte age=300,产生溢,产生溢出错误。出错误。3.4.1 整型整型对于等号右边的整数常数,对于等号右边的整数常数,C#会按照默认的方式来判断会按照默认的方式来判断所属类型,即按照一定的顺序判断整数的类型,即所属类型,即按照一定的顺序判断整数的类型,即int、uint、long、ulong。如果不希望如果不希望C#使用上述默认的方式来判断一个整数数值使用上述
22、默认的方式来判断一个整数数值常数的类型,可以通过添加后缀来指定整数常数的类型。常数的类型,可以通过添加后缀来指定整数常数的类型。u(或者(或者U)后缀:加在整数常数后面,代表该常数是)后缀:加在整数常数后面,代表该常数是uint类型类型或者或者ulong类型。具体类型由常数的实际值决定。类型。具体类型由常数的实际值决定。C#优先匹配优先匹配uint类型。类型。l(或者(或者L)后缀:加在整数常数后面,代表该常数是)后缀:加在整数常数后面,代表该常数是long类型类型或者或者ulong类型。具体类型由常数的实际值决定。类型。具体类型由常数的实际值决定。C#优先匹配优先匹配long类型。类型。ul
23、后缀:加在整型常数后面,代表该常数是后缀:加在整型常数后面,代表该常数是ulong类型。类型。例如:例如:uint age=18U; long StudentNumber =200745054489L; 对于不可打印字符,对于不可打印字符,例如回车符、换行符例如回车符、换行符等,则需要采用转义等,则需要采用转义符。符。 char c=a; Console.WriteLine(c);Console.WriteLine(abcn)转义符字符十六进制表示单引号0 x0027双引号0 x0022反斜杠0 x005C0空字符0 x0000a发出一声响铃0 x0007b退格0 x0008n换行0 x000
24、Ar回车0 x000Df换页符0 x000Ct水平制表符0 x0009v垂直制表符0 x000B3.4.1 整型整型3.4.2 浮点型浮点型在日常生活中,像学生成绩,要用小数表示。在在日常生活中,像学生成绩,要用小数表示。在C#中使用浮点型表示小数,浮点就是指小数点中使用浮点型表示小数,浮点就是指小数点 。C#语言中有两种小数类型,分别为语言中有两种小数类型,分别为32位单精度浮位单精度浮点型点型float和和64位双精度浮点型位双精度浮点型double。精度指的。精度指的是小数位数,小数位数越多,精度越高,小数位是小数位数,小数位数越多,精度越高,小数位数越少,精度越低。数越少,精度越低。f
25、loat类型中小数位数为类型中小数位数为7位,即可精确到小数点位,即可精确到小数点后后7位,位,double类型中小数位数为类型中小数位数为15或或16位,即位,即可精确到小数点后可精确到小数点后15或或16位,是位,是float类型的两倍,类型的两倍,因此称为双精度浮点型。因此称为双精度浮点型。使用浮点型使用浮点型 注意,对于一个小数,其默认类型都是注意,对于一个小数,其默认类型都是double类型,如果需要指定为类型,如果需要指定为float类型,类型,必须在小数后面添加必须在小数后面添加F或或f后缀。后缀。 示例:示例: double score1=5.648; float score=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 语言 基础
限制150内