欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C 实用入门教程.pptx

    • 资源ID:87588147       资源大小:1.18MB        全文页数:97页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C 实用入门教程.pptx

    1.1 C#的优势 作为编程语言,作为编程语言,C#是现代的、简单的、完是现代的、简单的、完全面向对象的,而且是类型安全的。重要的是,全面向对象的,而且是类型安全的。重要的是,C#是一种现代编程语言。在类、名字空间、方是一种现代编程语言。在类、名字空间、方法重载和异常处理等方面,法重载和异常处理等方面,C#去掉了去掉了C+中的中的许多复杂性,借鉴和修改了许多复杂性,借鉴和修改了Java的许多特性,的许多特性,使其更加易于使用,不易出错。使其更加易于使用,不易出错。下面列举了一些下面列举了一些C#在设计上的优点:在设计上的优点:第2页/共97页第1页/共97页1.1 C#的优势面向对象面向对象 现代性现代性 类型安全性类型安全性 版本处理技术版本处理技术 C#在设计上的在设计上的优点优点 简单性简单性 第3页/共97页第2页/共97页 简单性简单性简单性简单性 1.没有指针是没有指针是C#的一个显著特性的一个显著特性,用户使用一种可操控的用户使用一种可操控的(Managed)代码进行工作时,直接的内存存取,将是不允许的。)代码进行工作时,直接的内存存取,将是不允许的。2.在在C#中不再需要记住那些源于不同处理器结构的数据类型中不再需要记住那些源于不同处理器结构的数据类型 现代性现代性现代性现代性 1.用户可以使用一个新的用户可以使用一个新的decimal数据类型进行货币计算。数据类型进行货币计算。2.C#通过代码访问安全机制来保证安全性,根据代码的身份来源,通过代码访问安全机制来保证安全性,根据代码的身份来源,可以分为不同的安全级别,不同级别的代码在被调用时会受到不同可以分为不同的安全级别,不同级别的代码在被调用时会受到不同的限制。的限制。面向面向面向面向 对象对象对象对象 1.C#支持面向对象的所有关键概念:封装、继承和多态性。支持面向对象的所有关键概念:封装、继承和多态性。2.C#的继承机制只允许一个基类。如果需要多重继承,用户可以使的继承机制只允许一个基类。如果需要多重继承,用户可以使用接口。用接口。第4页/共97页第3页/共97页 类型安全类型安全类型安全类型安全性性性性 1.C#实施了最严格的类型安全机制来保护它自身及其垃圾收集器。实施了最严格的类型安全机制来保护它自身及其垃圾收集器。2.边界检查。边界检查。3.算术运算溢出检查。算术运算溢出检查。4.C#中传递的引用参数是类型安全的。中传递的引用参数是类型安全的。版本处版本处版本处版本处理技术理技术理技术理技术 C#尽其所能支持尽其所能支持DLL版本处理功能版本处理功能,虽然虽然C#自己并不能保证提供自己并不能保证提供正确的版本处理结果,但它为程序员提供了这种版本处理的可能性。正确的版本处理结果,但它为程序员提供了这种版本处理的可能性。有了这个适当的支持,开发者可以确保当他开发的类库升级时,会有了这个适当的支持,开发者可以确保当他开发的类库升级时,会与已有的客户应用保持二进制级别上的兼容性。与已有的客户应用保持二进制级别上的兼容性。第5页/共97页第4页/共97页1.2 第一个C#程序首先看首先看控制台应用程序控制台应用程序的版本。的版本。【例例1.1】在控制台窗口中输出在控制台窗口中输出“Hello World!”字样。字样。在在Visual C#.NET开发环境中新建一个控制台应用程序项目开发环境中新建一个控制台应用程序项目,并在源代码文件中输入如下语句:并在源代码文件中输入如下语句:using System;class HelloWorldpublic static void Main()Console.WriteLine(Hello World!);程序运行结果下图所示。程序运行结果下图所示。Hello World!第6页/共97页第5页/共97页 将此内容保存到文件将此内容保存到文件EX1_1.cs中,然后选择菜单中,然后选择菜单“调试调试”“启动启动”或直接按或直接按F5键运行此程序。键运行此程序。也可以不使用也可以不使用Visual C#.NET环境,直接用文本编辑工具输环境,直接用文本编辑工具输入以上代码,并且保存到入以上代码,并且保存到Helloworld.cs文件中,再通过开始菜文件中,再通过开始菜单的单的“程序程序”“Microsoft Visual Studio 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应用程序应用程序”模板建立项目,或者使用文本编辑工具模板建立项目,或者使用文本编辑工具输入源代码如下:输入源代码如下: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.dll”,然,然后单击后单击“选择选择”按钮,最后单击按钮,最后单击“确定确定”按钮完成添加。将文按钮完成添加。将文件另存为件另存为EX1_2.cs,在开发环境中按,在开发环境中按F5键编译运行程序,如果键编译运行程序,如果用命令行方式编译请参照控制台版,编译命令如下:用命令行方式编译请参照控制台版,编译命令如下:csc/target:winexe EX1_2.cs程序的运行结果如图程序的运行结果如图1.2所示。所示。第9页/共97页第8页/共97页通过上述两段代码来认识通过上述两段代码来认识C#:1代码最前面是以代码最前面是以using关键字开始的命名空间导入语句,然关键字开始的命名空间导入语句,然后是使用后是使用class关键字对类关键字对类HelloWorld的定义。的定义。2命名空间是为了防止相同名字的不同标识符发生冲突而设计命名空间是为了防止相同名字的不同标识符发生冲突而设计的隔离机制。的隔离机制。3在在.NET框架类库中提供的不同组件都被包含在一定的命名框架类库中提供的不同组件都被包含在一定的命名空间中,所以要使用这些组件也必须通过空间中,所以要使用这些组件也必须通过using关键字开放相应关键字开放相应的命名空间,使得相应的标识符对编译器可见,如果没有使用的命名空间,使得相应的标识符对编译器可见,如果没有使用using关键字,那么相应的标识符就应包含完整的空间路径关键字,那么相应的标识符就应包含完整的空间路径。4由于由于C#是一种完全的面向对象的语言,所以不会有独立于是一种完全的面向对象的语言,所以不会有独立于类的代码出现,应用程序的入口也必须是类的方法,类的代码出现,应用程序的入口也必须是类的方法,C#规定命规定命名为名为Main的方法作为程序的入口的方法作为程序的入口 5C#是一种大小写敏感的语言是一种大小写敏感的语言!第10页/共97页第9页/共97页第第2章章 C#编程基础编程基础C#的基本数据类型、变量、常量、表达式、程序流程控制语句的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是及数组等概念是C#程序设计的基础,掌握这些基本知识是编写程序设计的基础,掌握这些基本知识是编写正确程序的前提。正确程序的前提。2.1 基本类型基本类型C#的基本数据类型、变量、常量、表达式、程序流程控制语句及的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是数组等概念是C#程序设计的基础,掌握这些基本知识是编写正确程序设计的基础,掌握这些基本知识是编写正确程序的前提。程序的前提。第11页/共97页第10页/共97页第第2章章 C#编程基础编程基础C#的基本数据类型、变量、常量、表达式、程序流程控制语句的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是及数组等概念是C#程序设计的基础,掌握这些基本知识是编写程序设计的基础,掌握这些基本知识是编写正确程序的前提。正确程序的前提。第12页/共97页第11页/共97页2.2.1 值类型值类型所谓所谓值类型值类型就是一个包含实际数据的就是一个包含实际数据的量。当定义一个值类型的变量时,量。当定义一个值类型的变量时,C#会根据它所声明的类型,以会根据它所声明的类型,以堆栈堆栈方式方式分配一块大小相适应的存储区域给这分配一块大小相适应的存储区域给这个变量,随后对这个变量的读个变量,随后对这个变量的读/写操作写操作就直接在这块内存区域进行。就直接在这块内存区域进行。.例如:例如:int iNum=10;/分配一个分配一个32位内存位内存区域给变量区域给变量iNum,并将,并将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位有符号整数类型3276832767ushortSystem.UInt1616位无符号整数类型065535intSystem.Int3232位有符号整数类型21474836482147483647 C#中的值类型包括:简单类型、枚举类型和结构类型。中的值类型包括:简单类型、枚举类型和结构类型。第14页/共97页第13页/共97页续表续表C#关键字关键字.NET CTS类型名类型名说说 明明范围和精度范围和精度uintSystem.Uint3232位无符号整数类型04294967295longSystem.Int6464位有符号整数类型92233720368547758089223372036854775807ulongSystem.UInt6464位无符号整数类型018446744073709551615charSystem.Char16位字符类型所有的Unicode编码字符floatSystem.Single32位单精度浮点类型(大约7个有效十进制数位)doubleSystem.Double64位双精度浮点类型(大约1516个有效十进制数位)decimalSystem.Decimal128位高精度十进制数类型(大约2829个有效十进制数位)表中表中“C#关键字关键字”是指在是指在C#中声明变量时可使用的类型说明符。中声明变量时可使用的类型说明符。第15页/共97页第14页/共97页2.1.2 引用类型引用类型引用类型引用类型包括包括class(类)、(类)、interface(接口)、数(接口)、数组、组、delegate(委托)、(委托)、object和和string。其中。其中object和和string是两个比较特殊的类型。是两个比较特殊的类型。object是是C#中所有类型(包括所有的值类型和引用类型)的中所有类型(包括所有的值类型和引用类型)的根类。根类。string类型是一个从类型是一个从object类直接继承的密封类直接继承的密封类型(不能再被继承),其实例表示类型(不能再被继承),其实例表示Unicode字符字符串。串。一个引用类型的变量不存储它们所代表的实际一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。数据,而是存储实际数据的引用。引用类型分引用类型分两步两步创建:首先在堆栈上创建一个引用变量,然后在堆创建:首先在堆栈上创建一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。的首地址)赋给引用变量。第16页/共97页第15页/共97页例如:string s1,s2;s1=ABCD;s2=s1;其中,s1、s2是指向字符串的引用变量,s1的值是字符串ABCD存放在内存的地址,这就是对字符串的引用,两个引用型变量之间的赋值,使得s2、s1都是对ABCD的引用,如图2.2所示。图2.2 引用类型赋值示意第17页/共97页第16页/共97页引用类型的值是引用类型实例的引用,特殊值引用类型的值是引用类型实例的引用,特殊值null适适用于所有引用类型,它表明没有任何引用的对象。用于所有引用类型,它表明没有任何引用的对象。当然也可能有若干引用类型的变量同时引用一个对当然也可能有若干引用类型的变量同时引用一个对象的实例,对任何一个引用变量作出修改都会导致象的实例,对任何一个引用变量作出修改都会导致该对象的值的修改。该对象的值的修改。注意:注意:堆栈堆栈是按先进后出(是按先进后出(FILO)的原则存储数据)的原则存储数据项的一种数据结构;项的一种数据结构;堆(堆(heap)则是用于动态内存则是用于动态内存分配的一块内存区域,可以按任意顺序和大小进行分配的一块内存区域,可以按任意顺序和大小进行分配和释放。分配和释放。C#中,值类型就分配在堆栈中,堆栈内存区域内保中,值类型就分配在堆栈中,堆栈内存区域内保存着值类型的值,内存区域可以通过变量名来存取。存着值类型的值,内存区域可以通过变量名来存取。引用类型分配在堆中,对象分配在堆时,返回的是引用类型分配在堆中,对象分配在堆时,返回的是地址,这个地址被赋值给引用。地址,这个地址被赋值给引用。第18页/共97页第17页/共97页 可以把值类型与引用类型的值赋给可以把值类型与引用类型的值赋给object类型类型变量,变量,C#用用“装箱装箱”和和“拆箱拆箱”来实现值类型与引来实现值类型与引用类型之间的用类型之间的转换转换。“装箱装箱”就是将值类型包装成引用类型的处理过程。就是将值类型包装成引用类型的处理过程。当一个值类型被要求转换成一个当一个值类型被要求转换成一个object对象时,对象时,“装箱装箱”操作自动进行,它首先创建一个对象实例,操作自动进行,它首先创建一个对象实例,然后把值类型的值复制到这个对象实例,最后由然后把值类型的值复制到这个对象实例,最后由object对象引用这个对象实例。对象引用这个对象实例。2.1.3 值类型与引用类型的关系值类型与引用类型的关系第19页/共97页第18页/共97页例如例如:using System;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页“拆箱拆箱”操作与操作与“装箱装箱”相反,相反,它是将一个它是将一个object类型转换类型转换成值类型。首先检查由成值类型。首先检查由object引用的对象实例值类引用的对象实例值类型的包装值,然后把实例中型的包装值,然后把实例中的值复制到值类型的变量中。的值复制到值类型的变量中。注意:注意:当一个当一个“装箱装箱”操作操作把值类型转换为一个引用类把值类型转换为一个引用类型时,不需要显式地强制类型时,不需要显式地强制类型转换;型转换;而拆箱操作把引用类型转换而拆箱操作把引用类型转换到值类型时,由于它可以强到值类型时,由于它可以强制转换到任何可以相容的值制转换到任何可以相容的值类型,所以必须显式地强制类型,所以必须显式地强制类型转换。类型转换。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 变量与常量变量与常量C#的基本数据类型、变量、常量、表达式、程序流程控制语句及的基本数据类型、变量、常量、表达式、程序流程控制语句及数组等概念是数组等概念是C#程序设计的基础,掌握这些基本知识是编写正确程序设计的基础,掌握这些基本知识是编写正确程序的前提。程序的前提。2.2.1 常量常量 常量,顾名思义就是在程序运行期间其值不会改变的量,它通常常量,顾名思义就是在程序运行期间其值不会改变的量,它通常可以分为字面常量和符号常量。常量及其使用非常直观,以能读可以分为字面常量和符号常量。常量及其使用非常直观,以能读懂的固定格式表示固定的数值,每一种值类型都有自己的常量表懂的固定格式表示固定的数值,每一种值类型都有自己的常量表示形式。示形式。第23页/共97页第22页/共97页对于一个整数值,默认的类型就是能保存它的最小整数类型,其类对于一个整数值,默认的类型就是能保存它的最小整数类型,其类型可以分为型可以分为int、uint、long或或ulong。如果默认类型不是想要的类。如果默认类型不是想要的类型,可以在常量后面加后缀(型,可以在常量后面加后缀(U或或L)来明确指定其类型。)来明确指定其类型。在常量后面加在常量后面加L或或l(不区分大小写)表示长整型。例如:(不区分大小写)表示长整型。例如:32 /这是一个这是一个int类型类型32L /这是一个这是一个long类型类型在常量后面加在常量后面加U或或u(不区分大小写)表示无符号整数。例如:(不区分大小写)表示无符号整数。例如:128U /这是一个这是一个uint 类型类型128UL /这是一个这是一个ulong类型类型整型常量既可以采用十进制也可以采用十六进制,不加特别说明默整型常量既可以采用十进制也可以采用十六进制,不加特别说明默认为十进制,在数值前面加认为十进制,在数值前面加0 x(或(或0X)则表示十六进制数,十六)则表示十六进制数,十六进制基数用进制基数用09、AF(或(或af),例如:),例如:0 x20 /十六进制数十六进制数20,相当于十进制数,相当于十进制数320 x1F /十六进制数十六进制数1F,相当于十进制数,相当于十进制数311整数常量整数常量第24页/共97页第23页/共97页一般带小数点的数或用科学计数法表示的数都被认为是一般带小数点的数或用科学计数法表示的数都被认为是浮点数浮点数,它的数据类型默认为它的数据类型默认为double类型,但也可以加后缀符表明三种类型,但也可以加后缀符表明三种不同的浮点格式数不同的浮点格式数定点数定点数(Fixed Point Number)。在这种表达方式中,小数点)。在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置固定的位于实数所有数字中间的某个位置.在数字后面加在数字后面加F(f)表示是表示是float类型。类型。在数字后面加在数字后面加D(d)表示是表示是double类型。类型。在数字后面加在数字后面加M(m)表示是表示是decimal类型。类型。例如:例如:3.14,3.14e2,0.168E 2 /这些都是这些都是double类型常量,类型常量,其中其中3.14e2相当于相当于,/0.618E 2 相当于相当于3.14F,0.168f /这些都是这些都是float类型常量类型常量3.14D,0.168d /这些都是这些都是double类型常量类型常量3.14M,0.168m /这些都是这些都是decimal类型常量类型常量2浮点常量浮点常量第25页/共97页第24页/共97页字符常量字符常量,简单地说,简单地说,就是用单引号括起来的单个字符就是用单引号括起来的单个字符,如,如A,它占,它占16位,以无符号整型数的形式存储这个字符所对应的位,以无符号整型数的形式存储这个字符所对应的Unicode代码。这对于大多数图形字符是可行的,但对一些非代码。这对于大多数图形字符是可行的,但对一些非图形的控制字符(如回车符)则行不通,所以字符常量的表达图形的控制字符(如回车符)则行不通,所以字符常量的表达有若干种形式。有若干种形式。单引号括起的一个字符,如单引号括起的一个字符,如A。十六进制的换码系列,以十六进制的换码系列,以“x”或或“X”开始,后面跟开始,后面跟4位十位十六进制数,如六进制数,如 X0041。Unicode码表示形式,以码表示形式,以“U”或或“u”开始,后面跟开始,后面跟4位十位十六进制数,如六进制数,如 U0041。显式转换整数字符代码,如(显式转换整数字符代码,如(char)65。字符转义系列,如表字符转义系列,如表2.2所示。所示。3字符常量字符常量 第26页/共97页第25页/共97页转转 义义 字字 符符含含 义义Unicode码码转转 义义 字字 符符含含 义义Unicode码码单引号u0027b退格符u0008双引号u0022f走纸换页符u000C反斜线字符u005Cn换行符u000A0空字符u0000r回车符u000Da警铃符u0007t水平制表符u0009v垂直制表符u000B表表2.2 字符转义符字符转义符第27页/共97页第26页/共97页字符串常量是用双引号括起的零个或多个字符序列。字符串常量是用双引号括起的零个或多个字符序列。C#支持两种形式支持两种形式的字符串常量,一种是常规字符串,另一种是逐字字符串。的字符串常量,一种是常规字符串,另一种是逐字字符串。(1)常规字符串。双引号括起的一串字符,可以包括转义字符。)常规字符串。双引号括起的一串字符,可以包括转义字符。例如:例如:Hello,WorldnC:windowsMicrosoft /表示字符串表示字符串 C:windowsMicrosoft(2)逐字字符串。在常规的字符串前面加一个)逐字字符串。在常规的字符串前面加一个,就形成了逐字字,就形成了逐字字符串,符串,它的意思是字符串中的每个字符均表示本意,不使用转义字符它的意思是字符串中的每个字符均表示本意,不使用转义字符。如果在字符串中需用到双引号,则可连写两个双引号来表示一个双引如果在字符串中需用到双引号,则可连写两个双引号来表示一个双引号。号。例如:例如:C:windowsMicrosoft /与与 C:windowsMicrosoft 含含义相同义相同He saidHello to me /与与He saidHello to me 含义含义相同相同4字符串常量字符串常量第28页/共97页第27页/共97页5布尔常量布尔常量它只有两个值:它只有两个值:true和和false。6符号常量符号常量在声明语句中,可以声明一个标识符常量,但必须在在声明语句中,可以声明一个标识符常量,但必须在定义标识符定义标识符时就进行初始化时就进行初始化,并且定义之后就不能再改变该常量的值。,并且定义之后就不能再改变该常量的值。具体的格式为:具体的格式为:const 类型类型 标识符标识符=初值初值例如:例如:const double PI=3.14159第29页/共97页第28页/共97页变量是在程序运行过程中其值可以改变的量,它是一个变量是在程序运行过程中其值可以改变的量,它是一个已命名的存已命名的存储单元储单元,通常用来记录运算的中间结果或保存数据。在,通常用来记录运算的中间结果或保存数据。在C#中,每个中,每个变量都具有一个类型,它确定哪些值可以存储在该变量中。创建一变量都具有一个类型,它确定哪些值可以存储在该变量中。创建一个变量就是创建这个类型的实例,变量的特性由类型来决定。个变量就是创建这个类型的实例,变量的特性由类型来决定。C#中的变量必须先声明后使用。中的变量必须先声明后使用。声明变量包括变量的名称、数据类声明变量包括变量的名称、数据类型,必要时指定变量的初始值。型,必要时指定变量的初始值。声明变量的形式:声明变量的形式:类型类型 标识符表标识符表;或或 类型类型 标识符标识符=初值初值 ,;2.2.2 变量变量第30页/共97页第29页/共97页标识符必须以字母或者标识符必须以字母或者_(下划线)开头,后面跟字母、数字和下划线(下划线)开头,后面跟字母、数字和下划线的组合。例如,的组合。例如,name、_Int、Name、x_1等都是合法的标识符,但等都是合法的标识符,但C#是大小写敏感的语言,是大小写敏感的语言,name、Name分别代表不同的标识符,在定分别代表不同的标识符,在定义和使用时要特别注意。另外变量名不能与义和使用时要特别注意。另外变量名不能与C#中的关键字相同,除非中的关键字相同,除非标识符是以标识符是以作为前缀的。作为前缀的。例如:例如:int x;/合法合法float y1=0.0,y2=1.0,y3;/合法,变量说明的同时可合法,变量说明的同时可以设置初始数值以设置初始数值string char /不合法,因为不合法,因为char是关键字是关键字string char /合法合法C#允许在任何模块(允许在任何模块(语法块语法块)内部声明变量,模块开始于)内部声明变量,模块开始于“”,结束,结束于于“”。每次进入声明变量所在的模块时,则创建变量并分配存储空。每次进入声明变量所在的模块时,则创建变量并分配存储空间,离开这个模块时,则销毁这个变量并收回分配的存储空间。实际间,离开这个模块时,则销毁这个变量并收回分配的存储空间。实际上,变量只在这个模块内有效,所以称为局部变量,这个模块区域就上,变量只在这个模块内有效,所以称为局部变量,这个模块区域就是变量的作用域。是变量的作用域。第31页/共97页第30页/共97页表达式是由表达式是由操作数和运算符操作数和运算符构成的。操作数可以是常量、变量、属构成的。操作数可以是常量、变量、属性等;运算符指示对操作数进行什么样的运算。因此,也可以说表性等;运算符指示对操作数进行什么样的运算。因此,也可以说表达式就是利用运算符来执行某些计算并且产生计算结果的语句。达式就是利用运算符来执行某些计算并且产生计算结果的语句。C#提供大量的运算符,按需要提供大量的运算符,按需要操作数的数目操作数的数目来分,有一元运算符来分,有一元运算符(如(如+)、二元运算符(如)、二元运算符(如+,*)、三元运算符(如)、三元运算符(如?:)。按运)。按运算功能来分,基本的运算符可以分为以下几类:算功能来分,基本的运算符可以分为以下几类:(1)算术运算符)算术运算符 (2)关系运算符)关系运算符 (3)逻辑运算符)逻辑运算符 (4)位运算符)位运算符(5)赋值运算符)赋值运算符 (6)条件运算符)条件运算符 (7)其他(分量运算符)其他(分量运算符 ,下标运算符,下标运算符 等)等)2.3 运算符与表达式运算符与表达式第32页/共97页第31页/共97页2.3.1 算术运算符算术运算符运算运算 符符含含 义义示例(假设示例(假设x,y是某一数值类型是某一数值类型的变量)的变量)运运 算算 符符含含 义义示例(假设示例(假设x,y是某一数值类型是某一数值类型的变量)的变量)+加x+y;x+3;%取模x%y;11%3;11.0%3;减x y;y1;+递增+x;x+;*乘x*y;3*4;递减 x;x ;/除x/y;5/2;5.0/2.0;算术运算符作用的操作数类型可以是整型也可以是浮点型,运算算术运算符作用的操作数类型可以是整型也可以是浮点型,运算符如表符如表2.3所示所示第33页/共97页第32页/共97页其中:其中:“+*/”运算与一般代数意义及其他语言相同,但需要注意:当运算与一般代数意义及其他语言相同,但需要注意:当“/”作用的两个操作数都是整型数据类型时作用的两个操作数都是整型数据类型时,其计算结果也是整,其计算结果也是整型。型。例如:例如:4/2 /结果等于结果等于2 5/2 /结果等于结果等于25/2.0 /结果等于结果等于2.5 “%”取模运算取模运算,即获得整数除法运算的余数,所以也称取余。,即获得整数除法运算的余数,所以也称取余。例如:例如:11%3/结果等于结果等于212%3 /结果等于结果等于0 11.0%3 /结果等于结果等于2,这与,这与C/C+不同,它也可作用于浮点不同,它也可作用于浮点类型的类型的第34页/共97页第33页/共97页操作数操作数 “+”和和“”递增和递减运算符是一元运算符,它作递增和递减运算符是一元运算符,它作用的操作数必须是变量,不能是常量或表达式。它既可出现用的操作数必须是变量,不能是常量或表达式。它既可出现在操作数之前(前缀运算),也可出现在操作数之后(后缀在操作数之前(前缀运算),也可出现在操作数之后(后缀运算),前缀和后缀有共同之处,也有很大区别。运算),前缀和后缀有共同之处,也有很大区别。例如:例如:+x +x 先将先将x x加一个单位,然后再将计算结果作为表达式的值。加一个单位,然后再将计算结果作为表达式的值。x+x+先将先将x x的值作为表达式的值,然后再将的值作为表达式的值,然后再将x x加一个单位。加一个单位。不管是前缀还是后缀,它们操作的结果对操作数而言,都是不管是前缀还是后缀,它们操作的结果对操作数而言,都是一样的,操作数都加了一个单位,但它们出现在表达式运算一样的,操作数都加了一个单位,但它们出现在表达式运算中是有区别的。中是有区别的。例如:例如:int x,y;int x,y;x=5;y=+x;/xx=5;y=+x;/x和和y y的值都等于的值都等于6 6x=5;y=x+;/xx=5;y=x+;/x的值是的值是6 6,y y的值是的值是5 5 第35页/共97页第34页/共97页操作数操作数 “+”和和“”递增和递减运算符是一元运算符,它作用的操递增和递减运算符是一元运算符,它作用的操作数必须是变量,不能是常量或表达式。它既可出现在操作数之前作数必须是变量,不能是常量或表达式。它既可出现在操作数之前(前缀运算),也可出现在操作数之后(后缀运算),前缀和后缀(前缀运算),也可出现在操作数之后(后缀运算),前缀和后缀有共同之处,也有很大区别。有共同之处,也有很大区别。例如:例如:+x 先将先将x加一个单位,然后再将计算结果作为表达式的值。加一个单位,然后再将计算结果作为表达式的值。x+先将先将x的值作为表达式的值,然后再将的值作为表达式的值,然后再将x加一个单位。加一个单位。不管是前缀还是后缀,它们操作的结果对操作数而言,都是一样的,不管是前缀还是后缀,它们操作的结果对操作数而言,都是一样的,操作数都加了一个单位,但它们出现在表达式运算中是有区别的。操作数都加了一个单位,但它们出现在表达式运算中是有区别的。例如:例如:int x,y;x=5;y=+x;/x和和y的值都等于的值都等于6x=5;y=x+;/x的值是的值是6,y的值是的值是5 第36页/共97页第35页/共97页2.3.2 关系运算符关系运算符运运 算算 符符操操 作作结果(假设结果(假设x,y是某相应类型的操作数)是某相应类型的操作数)xy如果x大于y,则为true,否则为false=x=y如果x大于等于y,则为true,否则为falsexy如果x小于y,则为true,否则为false=x、=、=flasetrue flase在在C#C#中是没有意义的。中是没有意义的。第38页/共97页第37页/共97页在在C#中,简单类型和引用类型都可以通过中,简单类型和引用类型都可以通过=或或!=来比较它们的数据内来比较它们的数据内容是否相等。对简单类型,比较的是它们的数据值;而对引用类型来容是否相等。对简单类型,比较的是它们的数据值;而对引用类型来说,由于它的内容是对象实例的引用,所以若相等,则说明这两个引说,由于它的内容是对象实例的引用,所以若相等,则说明这两个引用指向同一个对象实例,如果要测试两个引用对象所代表的内容是否用指向同一个对象实例,如果要测试两个引用对象所代表的内容是否相等,则通常会使用对象本身所提供的方法,如相等,则通常会使用对象本身所提供的方法,如Equals()。如果操作数是如果操作数是string类型的,则在下列两种情况下被视为两个类型的,则在下列两种情况下被视为两个string值相等。值相等。(1)两个值均为)两个值均为null。(2)两个值都是对字符串实例的非空引用,这两个字符串不仅长度)两个值都是对字符串实例的非空引用,这两个字符串不仅长度相同,并且每一个对应的字符位置上的字符也相同。关系比较运算相同,并且每一个对应的字符位置上的字符也相同。关系比较运算“、=、flase在在C#中是没有意义的。中是没有意义的。第39页/共97页第38页/共97页2.3.3 2.3.3 逻辑运算符逻辑运算符运运 算算 符符含含 义义运运 算算 符符含含 义义&逻辑与&短路与|逻辑或|短路或逻辑异或!逻辑非pqp&qp|qp q!ptruetruetruetruefalsefalsetruefalsefalsetruetruefalsefalsetruefalsetruetruetruefalseflaseflasefalsefalsetrue假设假设p、q是两个布尔类型的操作数,表是两个布尔类型的操作数,表2.6给出了逻辑运算的真值表。给出了逻辑运算的真值表。逻辑运算符是用来对两个布尔类型的操作数进行逻辑运算的,运算逻辑运算符是用来对两个布尔类型的操作数进行逻辑运算的,运算的结果也是布尔类型,如表的结果也是布尔类型,如表2.5所示。所示。第40页/共97页第39页/共97页运算符运算符“&”和和“|”的操作结果与的操作结果与“&”和和“|”一样,但它们的一样,但它们的短路特征短路特征(short cut)使代码的效率更高。所谓短路就是在逻辑运算使代码的效率更高。所谓短路就是在逻辑运算的过程中,如果计算第一个操作数时,就能得知运算结果就不会再的过程中,如果计算第一个操作数时,就能得知运算结果就不会再计算第二个操作数,如图计算第二个操作数,如图2.4所示。所示。第41页/共97页第40页/共97页位运算符主要分为逻辑运算位运算符主要分为逻辑运算和移位运算,它的运算操作和移位运算,它的运算操作直接作用于操作数的每一位,直接作用于操作数的每一位,所以操作数的类型必须是整所以操作数的类型必须是整数类型,不能是布尔类型、数类型,不能是布尔类型、float或或double等类型。等类型。如表如表2.7所示。借助这些位所示。借助这些位运算符可以完成对整型数的运算符可以完成对整型数的某一位测试、设置,以及对某一位测试、设置,以及对一个数的位移动等操作,这一个数的位移动等操作,这对许多系统级程序设计非常对许多系统级程序设计非常重要。重要。2.3.4 位运算符位运算符运运 算算 符符含含 义义&按位与按位与|按位或按位或按位异或按位异或按位取反按位取反右移右移左移左移第42页/共97页第41页/共97页按位异或

    注意事项

    本文(C 实用入门教程.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开