C 实用入门教程.pptx
《C 实用入门教程.pptx》由会员分享,可在线阅读,更多相关《C 实用入门教程.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 C#的优势 作为编程语言,作为编程语言,C#是现代的、简单的、完是现代的、简单的、完全面向对象的,而且是类型安全的。重要的是,全面向对象的,而且是类型安全的。重要的是,C#是一种现代编程语言。在类、名字空间、方是一种现代编程语言。在类、名字空间、方法重载和异常处理等方面,法重载和异常处理等方面,C#去掉了去掉了C+中的中的许多复杂性,借鉴和修改了许多复杂性,借鉴和修改了Java的许多特性,的许多特性,使其更加易于使用,不易出错。使其更加易于使用,不易出错。下面列举了一些下面列举了一些C#在设计上的优点:在设计上的优点:第2页/共97页第1页/共97页1.1 C#的优势面向对象面向对象
2、现代性现代性 类型安全性类型安全性 版本处理技术版本处理技术 C#在设计上的在设计上的优点优点 简单性简单性 第3页/共97页第2页/共97页 简单性简单性简单性简单性 1.没有指针是没有指针是C#的一个显著特性的一个显著特性,用户使用一种可操控的用户使用一种可操控的(Managed)代码进行工作时,直接的内存存取,将是不允许的。)代码进行工作时,直接的内存存取,将是不允许的。2.在在C#中不再需要记住那些源于不同处理器结构的数据类型中不再需要记住那些源于不同处理器结构的数据类型 现代性现代性现代性现代性 1.用户可以使用一个新的用户可以使用一个新的decimal数据类型进行货币计算。数据类型
3、进行货币计算。2.C#通过代码访问安全机制来保证安全性,根据代码的身份来源,通过代码访问安全机制来保证安全性,根据代码的身份来源,可以分为不同的安全级别,不同级别的代码在被调用时会受到不同可以分为不同的安全级别,不同级别的代码在被调用时会受到不同的限制。的限制。面向面向面向面向 对象对象对象对象 1.C#支持面向对象的所有关键概念:封装、继承和多态性。支持面向对象的所有关键概念:封装、继承和多态性。2.C#的继承机制只允许一个基类。如果需要多重继承,用户可以使的继承机制只允许一个基类。如果需要多重继承,用户可以使用接口。用接口。第4页/共97页第3页/共97页 类型安全类型安全类型安全类型安全
4、性性性性 1.C#实施了最严格的类型安全机制来保护它自身及其垃圾收集器。实施了最严格的类型安全机制来保护它自身及其垃圾收集器。2.边界检查。边界检查。3.算术运算溢出检查。算术运算溢出检查。4.C#中传递的引用参数是类型安全的。中传递的引用参数是类型安全的。版本处版本处版本处版本处理技术理技术理技术理技术 C#尽其所能支持尽其所能支持DLL版本处理功能版本处理功能,虽然虽然C#自己并不能保证提供自己并不能保证提供正确的版本处理结果,但它为程序员提供了这种版本处理的可能性。正确的版本处理结果,但它为程序员提供了这种版本处理的可能性。有了这个适当的支持,开发者可以确保当他开发的类库升级时,会有了这
5、个适当的支持,开发者可以确保当他开发的类库升级时,会与已有的客户应用保持二进制级别上的兼容性。与已有的客户应用保持二进制级别上的兼容性。第5页/共97页第4页/共97页1.2 第一个C#程序首先看首先看控制台应用程序控制台应用程序的版本。的版本。【例例1.1】在控制台窗口中输出在控制台窗口中输出“Hello World!”字样。字样。在在Visual C#.NET开发环境中新建一个控制台应用程序项目开发环境中新建一个控制台应用程序项目,并在源代码文件中输入如下语句:并在源代码文件中输入如下语句:using System;class HelloWorldpublic static void Ma
6、in()Console.WriteLine(Hello World!);程序运行结果下图所示。程序运行结果下图所示。Hello World!第6页/共97页第5页/共97页 将此内容保存到文件将此内容保存到文件EX1_1.cs中,然后选择菜单中,然后选择菜单“调试调试”“启动启动”或直接按或直接按F5键运行此程序。键运行此程序。也可以不使用也可以不使用Visual C#.NET环境,直接用文本编辑工具输环境,直接用文本编辑工具输入以上代码,并且保存到入以上代码,并且保存到Helloworld.cs文件中,再通过开始菜文件中,再通过开始菜单的单的“程序程序”“Microsoft Visual S
7、tudio 2005”“Visual Studio Tools”“Visual Studio 2005命令提示命令提示”打开命令行打开命令行窗口,在命令窗口中输入:窗口,在命令窗口中输入:csc /target:exe EX1_1.cs程序运行结果如图程序运行结果如图1.1所示。所示。Hello World!第7页/共97页第6页/共97页下面再看下面再看Windows应用程序应用程序的版本。的版本。【例例1.2】弹出一个消息对话框显示弹出一个消息对话框显示“Hello World!”字样。字样。用用“Windows应用程序应用程序”模板建立项目,或者使用文本编辑工具模板建立项目,或者使用文本
8、编辑工具输入源代码如下:输入源代码如下:using System;using System.Windows.Forms;class HelloWorldpublic static void Main()MessageBox.Show(Hello World,Message from C#);第8页/共97页第7页/共97页 这次需要增加对这次需要增加对System.Windows.Forms命名空间的引命名空间的引用,选择菜单用,选择菜单“项目项目”“添加引用添加引用”打开打开“添加引用添加引用”对话对话框,在列表中找到并选中框,在列表中找到并选中“System.Windows.Forms.d
9、ll”,然,然后单击后单击“选择选择”按钮,最后单击按钮,最后单击“确定确定”按钮完成添加。将文按钮完成添加。将文件另存为件另存为EX1_2.cs,在开发环境中按,在开发环境中按F5键编译运行程序,如果键编译运行程序,如果用命令行方式编译请参照控制台版,编译命令如下:用命令行方式编译请参照控制台版,编译命令如下:csc/target:winexe EX1_2.cs程序的运行结果如图程序的运行结果如图1.2所示。所示。第9页/共97页第8页/共97页通过上述两段代码来认识通过上述两段代码来认识C#:1代码最前面是以代码最前面是以using关键字开始的命名空间导入语句,然关键字开始的命名空间导入语
10、句,然后是使用后是使用class关键字对类关键字对类HelloWorld的定义。的定义。2命名空间是为了防止相同名字的不同标识符发生冲突而设计命名空间是为了防止相同名字的不同标识符发生冲突而设计的隔离机制。的隔离机制。3在在.NET框架类库中提供的不同组件都被包含在一定的命名框架类库中提供的不同组件都被包含在一定的命名空间中,所以要使用这些组件也必须通过空间中,所以要使用这些组件也必须通过using关键字开放相应关键字开放相应的命名空间,使得相应的标识符对编译器可见,如果没有使用的命名空间,使得相应的标识符对编译器可见,如果没有使用using关键字,那么相应的标识符就应包含完整的空间路径关键字
11、,那么相应的标识符就应包含完整的空间路径。4由于由于C#是一种完全的面向对象的语言,所以不会有独立于是一种完全的面向对象的语言,所以不会有独立于类的代码出现,应用程序的入口也必须是类的方法,类的代码出现,应用程序的入口也必须是类的方法,C#规定命规定命名为名为Main的方法作为程序的入口的方法作为程序的入口 5C#是一种大小写敏感的语言是一种大小写敏感的语言!第10页/共97页第9页/共97页第第2章章 C#编程基础编程基础C#的基本数据类型、变量、常量、表达式、程序流程控制语句的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是及数组等概念是C#程序设计的基础,掌握这些基本知识
12、是编写程序设计的基础,掌握这些基本知识是编写正确程序的前提。正确程序的前提。2.1 基本类型基本类型C#的基本数据类型、变量、常量、表达式、程序流程控制语句及的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是数组等概念是C#程序设计的基础,掌握这些基本知识是编写正确程序设计的基础,掌握这些基本知识是编写正确程序的前提。程序的前提。第11页/共97页第10页/共97页第第2章章 C#编程基础编程基础C#的基本数据类型、变量、常量、表达式、程序流程控制语句的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是及数组等概念是C#程序设计的基础,掌握这些基本知识是编写程序设
13、计的基础,掌握这些基本知识是编写正确程序的前提。正确程序的前提。第12页/共97页第11页/共97页2.2.1 值类型值类型所谓所谓值类型值类型就是一个包含实际数据的就是一个包含实际数据的量。当定义一个值类型的变量时,量。当定义一个值类型的变量时,C#会根据它所声明的类型,以会根据它所声明的类型,以堆栈堆栈方式方式分配一块大小相适应的存储区域给这分配一块大小相适应的存储区域给这个变量,随后对这个变量的读个变量,随后对这个变量的读/写操作写操作就直接在这块内存区域进行。就直接在这块内存区域进行。.例如:例如:int iNum=10;/分配一个分配一个32位内存位内存区域给变量区域给变量iNum,
14、并将,并将10放入该内放入该内存区域存区域iNum=iNum+10;/从变量从变量iNum中取出值,加上中取出值,加上10,再将计算,再将计算结果赋给结果赋给iNum图图2.1 值类型操作值类型操作示意图示意图第13页/共97页第12页/共97页表2.1 C#简单类型C#关键字.NET CTS类型名说 明范围和精度boolSystem.Boolean逻辑值(真或假)true,falsesbyteSystem.SByte8位有符号整数类型128127byteSystem.Byte8位无符号整数类型0255shortSystem.Int1616位有符号整数类型3276832767ushortSys
15、tem.UInt1616位无符号整数类型065535intSystem.Int3232位有符号整数类型21474836482147483647 C#中的值类型包括:简单类型、枚举类型和结构类型。中的值类型包括:简单类型、枚举类型和结构类型。第14页/共97页第13页/共97页续表续表C#关键字关键字.NET CTS类型名类型名说说 明明范围和精度范围和精度uintSystem.Uint3232位无符号整数类型04294967295longSystem.Int6464位有符号整数类型92233720368547758089223372036854775807ulongSystem.UInt646
16、4位无符号整数类型018446744073709551615charSystem.Char16位字符类型所有的Unicode编码字符floatSystem.Single32位单精度浮点类型(大约7个有效十进制数位)doubleSystem.Double64位双精度浮点类型(大约1516个有效十进制数位)decimalSystem.Decimal128位高精度十进制数类型(大约2829个有效十进制数位)表中表中“C#关键字关键字”是指在是指在C#中声明变量时可使用的类型说明符。中声明变量时可使用的类型说明符。第15页/共97页第14页/共97页2.1.2 引用类型引用类型引用类型引用类型包括包括
17、class(类)、(类)、interface(接口)、数(接口)、数组、组、delegate(委托)、(委托)、object和和string。其中。其中object和和string是两个比较特殊的类型。是两个比较特殊的类型。object是是C#中所有类型(包括所有的值类型和引用类型)的中所有类型(包括所有的值类型和引用类型)的根类。根类。string类型是一个从类型是一个从object类直接继承的密封类直接继承的密封类型(不能再被继承),其实例表示类型(不能再被继承),其实例表示Unicode字符字符串。串。一个引用类型的变量不存储它们所代表的实际一个引用类型的变量不存储它们所代表的实际数据,
18、而是存储实际数据的引用。数据,而是存储实际数据的引用。引用类型分引用类型分两步两步创建:首先在堆栈上创建一个引用变量,然后在堆创建:首先在堆栈上创建一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。的首地址)赋给引用变量。第16页/共97页第15页/共97页例如:string s1,s2;s1=ABCD;s2=s1;其中,s1、s2是指向字符串的引用变量,s1的值是字符串ABCD存放在内存的地址,这就是对字符串的引用,两个引用型变量之间的赋值,使得s2、s1都是对ABCD的引用,如图2.2所示。图2.2 引用类
19、型赋值示意第17页/共97页第16页/共97页引用类型的值是引用类型实例的引用,特殊值引用类型的值是引用类型实例的引用,特殊值null适适用于所有引用类型,它表明没有任何引用的对象。用于所有引用类型,它表明没有任何引用的对象。当然也可能有若干引用类型的变量同时引用一个对当然也可能有若干引用类型的变量同时引用一个对象的实例,对任何一个引用变量作出修改都会导致象的实例,对任何一个引用变量作出修改都会导致该对象的值的修改。该对象的值的修改。注意:注意:堆栈堆栈是按先进后出(是按先进后出(FILO)的原则存储数据)的原则存储数据项的一种数据结构;项的一种数据结构;堆(堆(heap)则是用于动态内存则是
20、用于动态内存分配的一块内存区域,可以按任意顺序和大小进行分配的一块内存区域,可以按任意顺序和大小进行分配和释放。分配和释放。C#中,值类型就分配在堆栈中,堆栈内存区域内保中,值类型就分配在堆栈中,堆栈内存区域内保存着值类型的值,内存区域可以通过变量名来存取。存着值类型的值,内存区域可以通过变量名来存取。引用类型分配在堆中,对象分配在堆时,返回的是引用类型分配在堆中,对象分配在堆时,返回的是地址,这个地址被赋值给引用。地址,这个地址被赋值给引用。第18页/共97页第17页/共97页 可以把值类型与引用类型的值赋给可以把值类型与引用类型的值赋给object类型类型变量,变量,C#用用“装箱装箱”和
21、和“拆箱拆箱”来实现值类型与引来实现值类型与引用类型之间的用类型之间的转换转换。“装箱装箱”就是将值类型包装成引用类型的处理过程。就是将值类型包装成引用类型的处理过程。当一个值类型被要求转换成一个当一个值类型被要求转换成一个object对象时,对象时,“装箱装箱”操作自动进行,它首先创建一个对象实例,操作自动进行,它首先创建一个对象实例,然后把值类型的值复制到这个对象实例,最后由然后把值类型的值复制到这个对象实例,最后由object对象引用这个对象实例。对象引用这个对象实例。2.1.3 值类型与引用类型的关系值类型与引用类型的关系第19页/共97页第18页/共97页例如例如:using Sys
22、tem;class Demo public static void Main()int x=123;object obj1=x;/装箱操作装箱操作 x=x+100;/改变改变x的值,的值,此时此时obj1的值并不会随之改变的值并不会随之改变 Console.WriteLine(x=0,x);/x=223 Console.WriteLine(obj1=0,obj1);/obj1=123 该实例的该实例的“装箱装箱”操作说明如操作说明如图图2.3所示。所示。第20页/共97页第19页/共97页该实例的该实例的“装箱装箱”操作说明如图操作说明如图2.3所示。所示。第21页/共97页第20页/共97页
23、“拆箱拆箱”操作与操作与“装箱装箱”相反,相反,它是将一个它是将一个object类型转换类型转换成值类型。首先检查由成值类型。首先检查由object引用的对象实例值类引用的对象实例值类型的包装值,然后把实例中型的包装值,然后把实例中的值复制到值类型的变量中。的值复制到值类型的变量中。注意:注意:当一个当一个“装箱装箱”操作操作把值类型转换为一个引用类把值类型转换为一个引用类型时,不需要显式地强制类型时,不需要显式地强制类型转换;型转换;而拆箱操作把引用类型转换而拆箱操作把引用类型转换到值类型时,由于它可以强到值类型时,由于它可以强制转换到任何可以相容的值制转换到任何可以相容的值类型,所以必须显
24、式地强制类型,所以必须显式地强制类型转换。类型转换。using System;class Demo public static void Main()int x=123,y;object obj1=x;/装箱操装箱操作作 x=x+100;/改变改变x的值,此时的值,此时obj1的值并不会随之改变的值并不会随之改变 y=(int)obj1;/拆箱操拆箱操作,必须进行强制类型转换作,必须进行强制类型转换 Console.WriteLine(x=0,x);/x=223 Console.WriteLine(obj1=0,obj1);/obj1=123 第22页/共97页第21页/共97页2.2 变量与
25、常量变量与常量C#的基本数据类型、变量、常量、表达式、程序流程控制语句及的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是数组等概念是C#程序设计的基础,掌握这些基本知识是编写正确程序设计的基础,掌握这些基本知识是编写正确程序的前提。程序的前提。2.2.1 常量常量 常量,顾名思义就是在程序运行期间其值不会改变的量,它通常常量,顾名思义就是在程序运行期间其值不会改变的量,它通常可以分为字面常量和符号常量。常量及其使用非常直观,以能读可以分为字面常量和符号常量。常量及其使用非常直观,以能读懂的固定格式表示固定的数值,每一种值类型都有自己的常量表懂的固定格式表示固定的数值,每一种值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用入门教程 实用 入门教程
限制150内