已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第2章 C#基本语法,编程语言都要处理数据,而数据类型又是不相同的,要想使计算机了解这些数据,必须让程序语言描述出各种数据的类型和处理方法,本章主要介绍C#的基本语法,包括C#的数据类型、运算符。,2,2.1 数据类型,在程序设计中,数据是程序的必要组成部分,是程序处理的对象。不同的数据有不同的数据类型,不同的数据类型有不同的数据结构和存储方式,并且参与的运算也不同。 C#的数据类型采用了类似于C和C+语言的数据类型表示形式,但又有所改进。C#将所有的数据类型分为两大类:值类型和引用类型。,3,2.1.1 值类型,值类型通常用来表示基本类型。如整型、实型、布尔型等基本数据类型都是值类型。C#的值类型主要包括:整数类型、布尔类型、实数类型、字符类型、结构和枚举类型。 1整数类型 2布尔类型 3实数类型和十进制类型 4字符类型 5结构类型 6枚举类型,1、整数类型,sbyte 有符号8位整数 System.SByte byte 无符号8位整数 System.Byte short 有符号16位整数 System. Int16 ushort 无符号16位整数 System. UInt16 int 有符号32位整数 System.Int32 uint 无符号32位整数 System.UInt32 long 有符号64位整数 System.Int64 ulong 无符号64位整数 System.UInt64,2、布尔类型,bool 对应 System.Boolean,值为true和false。 注意:与C/C+不同。C/C+中0表示“假”,非0表示“真”。 bool blx=false;,3、实数类型,float 7位精度的32位浮点数 System.Single double 15-16位精度的64位浮点数 System.Double decimal 28-29位精度的128位浮点数 System.Decimal,using System; using System.Collections.Generic; using System.Text; namespace t3 class Program static void Main(string args) decimal a = 300m;/后缀为M或m double b = 12.3; int c = 12; a = a + (decimal)b; Console.WriteLine(a); a = a + c; Console.WriteLine(a); Console.Read(); ,4、字符类型,C#提供了char来处理ASCII字符和Unicode字符。 char a=A; char b=汉; 转义字符:n,”等 char可隐式转换为其它类型,但不允许隐式地将其它类型转换为字符类型。,5、结构类型,struct Student public int Id; public string Name; public struct Score public float Math,English; ; public Score structScore; ; 访问: Student std; std.Id=1020; =“刘丽” ; std.structScore.Math=85;,6、枚举类型,public class Holiday public enum WeekDays Monday, Tuesday, Wednesday, Thursday, Friday public void GetWeekDays (String EmpName, WeekDays DayOff) /处理工作日 static void Main() WeekDays myday= WeekDays. Wednesday; int a=(int) myday; Console.WriteLine(a); ,枚举(Enum,Enumerator 的缩写)是一组已命名的数值常量 用于定义具有一组特定值的数据类型 枚举以 enum 关键字声明,Wednesday = 2,6、枚举类型,using System; namespace t3 class Program enum Range : byte Max = 255, Min = 0 ; static void Main(string args) byte x = (byte)Range.Max; byte y = (byte)Range.Min; Console.WriteLine(“最小值为:0“,x); Console.WriteLine(“最大值为:0“, y); Console.Read(); ,2.1.2 引用类型,引用类型与值类型相比,引用类型不存储实际数据,而存储实际数据的引用(即地址)。具体情况就是,当将一个数值保存到一个值类型变量后,该数值实际上复制到变量中;而把一个值赋值给一个引用类型时,仅是引用(保存数值的变量地址)被复制,而实际的值仍然保留在原来的内存位置。C#提供了以下几种引用类型: 类类型 字符串类型 数组 接口类型 委托类型,12,2.1.3 装箱和拆箱,装箱和拆箱是C#类型系统的核心概念。通过允许一个值类型转换为引用类型或从一个引用类型转换成值类型,这种机制形成了值类型和引用类型之间等价连接。即任何数据都可以被看作对象。 装箱是将值类型转换为引用类型 拆箱是将引用类型转换为值类型 显式装箱object i=(object)1 装箱可以隐式进行,拆箱必须显示进行,13,装箱和拆箱,int val = 100; object obj1= val;/隐式 object obj2=object(val);/显式 Console.WriteLine (“对象1的值 = 0“, obj1); Console.WriteLine (“对象2的值 = 0“, obj2);,int val = 100; object obj = val; int num = (int) obj; Console.WriteLine (“num: 0“, num);,拆箱,装箱,值类型,引用类型,值类型,被装过箱的对象才能被拆箱,namespace t3 class Program static void Main(string args) int i=10; object obj = i; if (obj is int) Console.WriteLine(“The value of i is boxing“); i = 20; Console.WriteLine(“int: i=0“, i); Console.WriteLine(“object: o=0“, obj); Console.Read(); 证明被装箱的类型的值是作为一个备份赋给对象的。,2.2 变量和常量,无论编写任何应用程序,数据都必须以某种方式表示。变量和常量在编写应用程序时是经常用到的,变量和常量的使用让代码更具有可读性、更容易维护。,16,2.2.1 变量,程序要对数据进行读、写、运算的等操作,当需要保存特定的值或计算结果时就需要用到变量(Variable)。在计算机中变量代表存储地址,而变量的类型决定了存储在变量中的数值的类型。变量可以在定义时被赋值,也可以在定义时不赋值。在定义时赋值的变量也就有了一个初始值。 变量的命名要符合标识符的命名规则,在命名时应给出具有描述性质的名称,这样写出来的程序便于理解。,17,1初始化变量,int count =20; char ch=x; float r=1.2f; int a,b=3,c=20,d;/a,d未被赋值 double v=3.14*r*r;/使用有效的表达式初始化,2变量的作用域和生命期,C#允许变量在任何代码块中声明,代码块定义了一个作用域。在作用域中声明的变量对于作用域外定义的代码是不可见的。 class Program static void Write() Console.WriteLine(“mystring=0”,mystring);/出错 static void Main(string args) string mystring = “string 定义在main()方法中“; Write(); Console.Read(); ,作用域可以嵌套,外层作用域包含内层,意味着在外层定义的对象对于内层的代码是可见的,反之不行。 class Program static void Main(string args) int x = 10; if (x = 10) int y = 20; Console.WriteLine(“x and y:“ + x + “ “ + y); x = y * 2; / y = 100;y在作用域外 Console.WriteLine(“x is“ + x); Console.Read(); ,class Program static void Main(string args) int x; for (x =0;x3;x+) int y = -1; Console.WriteLine(“y is “ + y); y = 100; Console.WriteLine(“y is now “ + y); Console.Read(); ,2.2.2 常量,带有const修饰符声明的变量称为常量,变量的值在程序执行过程中会改变,而常量代表的是永远不会改变的数据,声明常量时要设置常量值,例如:const int x=10; 用const定义的常量,对于所有类对象而言都是一样的,因此需要像访问静态成员那样去访问const定义的常量,而用对象的成员方式去访问会出编译错误。 常量在声明的时候,可以在const修饰符前加上常量修饰符:public、protected、internal和private。,22,static void Main(string args) / PI常量PI const float _pi = 3.14F; / 由地球引力引起的加速度常量,单位为 cm/s*s const float _gravity = 980; / 钟摆的长度 int length = 40; / 钟摆的周期 double period = 0; / 钟摆周期的计算公式 period = 2 * _pi * Math.Sqrt(length / _gravity); Console.WriteLine (“钟摆的周期为 0 秒“, period); ,2.3 运算符,运算符在表达式中用于描述涉及一个或多个操作数的运算,它指明了进行运算的类型。在C#中,根据运算符所使用的操作数的个数,可以分为如下3类: 一元运算符 二元运算符 三元运算符 根据运算符执行的操作类型主要可分为如下几类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 特殊运算符 条件运算符,24,2.3.1 算术运算符,25,一元运算符 (+/-),Variable +; 相当于 Variable = Variable + 1; Variable -; 相当于 Variable = Variable - 1;,C# 运算符的优先级,前置和后置自加/自减运算符,问题,计算结果: 1、 int i = 0; bool result = false result = (+i) + i = 2?true:false; result =,true,算术运算符,static void Main(string args) / x2 的系数 int coefficient1 = 2; / x 的系数 int coefficient2 = -7; / 二次方程的常数值 int constant = 3; / 存放表达式 b2 - 4ac 的值 double expression = 0; double x1 = 0; double x2 = 0; Console.WriteLine(“二次方程为: 0x2 + 1x + 2“, coefficient1, coefficient2, constant); expression = Math.Sqrt(coefficient2 * coefficient2 - (4 * coefficient1 * constant); x1 = (-coefficient2) + expression) / (2 * coefficient1); x2 = (-coefficient2) - expression) / (2 * coefficient1); Console.Write(“x = 0:F2 “, x1); Console.Write(“ 或 “); Console.WriteLine(“x = 0:F2“, x2); ,将值赋给变量,在表达式中使用的算术运算符,2.3.2 赋值运算符,赋值就是给一个变量赋一个新值。 1简单赋值 2复合赋值 3左移和右移赋值 4其他赋值运算符,32,赋值运算符 (=),变量 = 表达式; 例如: 身高 = 177.5; 体重 = 78; 性别 = “m”;,2.3.3 关系逻辑运算符,关系运算用来比较两个对象并返回布尔值,它的返回值总是布尔值。C#定义关系运算符的优先级低于算术操作符,高于赋值操作符。C#中关系操作符主要包括:比较运算符、is运算符、as运算符。 1比较运算符 2is运算符 3as运算符,35,2、is,用于动态地检查运行时两个对象类型是否都引用给定的对象类型,不执行值的比较,如果两个对象类型都引用同一个对象类型,结果为true,反之为false。,class class1 class class2 class IsTest static void Test(object obj) class1 a; class2 b; if (obj is class1) Console.WriteLine(“obj is class1“); a = (class1)obj; else if (obj is class2) Console.WriteLine(“obj is class2“); b = (class2)obj; else Console.WriteLine(“obj is neither class1 nor class
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开放式基金交易服务合同
- 2024简单销售代理合同样本
- 合同范本:委托招商引资协议书
- 二手车购车合同协议样本
- 2024照明购销合同
- 企业与高校就业实习协议书参考
- 代理公司注册登记协议书
- 培训机构老师合作协议示例
- 正规版房屋租赁合同协议范本
- 全面聘用合同范本汇编
- 0~36个月儿童中医药健康管理服务
- 第三章药物的化学结构与药代动力
- 智慧树关爱生命-自救与急救技能章节习题及答案
- 让数据成为生产力-数据全生命周期管理
- “工匠精神”视域下的高职院校学生职业素养教育的路径研究课题开题报告
- 不要等到毕业以后(升级版)
- 一企一标准一岗一清单手册模板
- 中西文化鉴赏知到章节答案智慧树2023年郑州大学
- 第四单元(知识清单)【 新教材精讲精研精思 】 七年级语文上册 (部编版)
- 答题卡(六年级数学)
- 潜水员体检表
评论
0/150
提交评论