收藏 分享(赏)

第三章_变量和表达式.ppt

上传人:hwpkd79526 文档编号:10043731 上传时间:2019-10-01 格式:PPT 页数:38 大小:163KB
下载 相关 举报
第三章_变量和表达式.ppt_第1页
第1页 / 共38页
第三章_变量和表达式.ppt_第2页
第2页 / 共38页
第三章_变量和表达式.ppt_第3页
第3页 / 共38页
第三章_变量和表达式.ppt_第4页
第4页 / 共38页
第三章_变量和表达式.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、第3章 变量和表达式,C# 中的变量,在 C# 中,变量并没有什么新的花样,同样是用来存储数据的。 变量的定义:; 与 C 语言不同,在 C# 中,变量在使用之间必须初始化,否则将不能通过编译。,简单类型,简单类型,数值类型,其它类型,整 型,sbyte, byte short, ushort int, uint long, ulong,浮点型,float double decimal,char string bool,其中类型名前的“u”是 unsigned 的缩写,表示不能在变量中存储负号。 如 uint 等价于 C 语言中的 unsigned int。,简单类型与 .NET CTS 的对

2、应,简单类型与 .NET CTS 的对应 (2),bool 类型是用来存储逻辑运算结果的,且只有 true 和 false 两值, string 类型类似于 C 语言中的字符串,但比其更好用,更灵活.,bool 类型的用法,bool 类型是用来保存逻辑运算的结果的,int myVal = 9; bool isLessThan10 = (myVal 10); if (isLessThan10) / Equals isLessThan10 = trueConsole.WriteLine(“Variable myVal is less than 10.”); else Console.WriteLi

3、ne(“Variable myVal is greater than or equal to 10.”); Console.WriteLine(“Variable isLessThan10 value is: 0”, isLessThan10);,Variable myVal is less than 10. Variable isLessThan10 value is: True _,Unicode 字符集,与 C 语言不同,在 C# 中,char 型变量存储的是以 Unicode 方式编码的字符,且在 C# 中,一个 char 型的变量占用两个字节,可表示 65536 种不同的字符,这样就

4、可以直接在一个 char 型变量中存储一个汉字。,Unicode 是一种国际字符集,可表示多个国家的字符。,char theChineseCharacters = 字;Console.WriteLine(“The chinese characters 0”, theChineseCharacters );,The chinese characters 字 _,简单类型示例,static void Main(string args) int theInteger = 10;double theDouble = 3.14159;char theChar = c;string theString =

5、 “the string!”;bool theLogic = true;Console.WriteLine(“Integer: 0nDouble: 1n” +“Char: 2nString: 3n” +“Logical: 4”,theInteger, theDouble, theChar, theString, theLogic); ,变量的命名,变量名的第一个字符必须是字母、下划线(_)或。 其后的字符可以是字母、下划线或数字。 变量名不可以和关键字同名。,合法命名: myBigVar, VAR1, _test, myVar 非法命名: 99BottleOfBeer, switch, Its

6、-All-Over,变量命名约定,camelCase(骆驼) 命名法 变量名中除第一个单词外,其它单词第一个字母大写,如: firstName bloodGroup userName winner itsMaxNumber,变量命名约定,PascalCase命名法 变量名每个单词第一个字母大写,如: FirstName BloodGroup UserName Winner ItsMaxNumber,变量命名约定,命名建议 局部变量、内部变量使用 camelCase 命名法给变量起名。 重要名称(公共变量)使用 PascalCase 命名法变量起名。 变量命名应能完全、准确的反映该变量所代表的事

7、物的意思。,变量命名示例,好的名字能清楚地表达变量所代表的事物,像 currentDate 和todaysDate 就是好的名字,能清楚的表达当前日期这个概念。,计算生日还有几个月(不清晰的例子),public int lmtb(int ybm, int cm) int lms;if (ybm cm)lms = ybm - cm;elselms = ybm + (12 - cm);return lms; ,计算生日还有几个月 (清晰的例子),public int LeftMonthsToBirthday(int yourBirthdayMonth, int currentMonth) int

8、leftMonths;if (yourBirthdayMonth currentMonth)leftMonths = yourBirthdayMonth - currentMonth;elseleftMonths = yourBirthdayMonth + (12 - currentMonth);return leftMonths; ,类型转换,使用 Convert 命令进行类型转换 可以使用 Convert 命令对更多类型的变量进行显示的转换,比如把数字字符串转换成数值类型,或者把字符串“True”或“false”转换成 bool 值等。 Convert 命令的用法其中 val 可以使各种类

9、型的变量。详细信息参照书上78页表5-2 如果转换存在错误,则抛出异常并中断程序。,Convert.ToCTS类型名(val);,例子,(1)输入两个整数,并计算两者的和、差、相除。(2)输入两个实数,并输出两个数中的最大值。,(3)输入一个两位整数,并将其两个位翻转后输出int num=Convert.ToInt32(Console.ReadLine(); int leftDigit = num / 10; int rightDigit = num % 10; int reverseNum = rightDigit *10 + leftDigit; Console.WriteLine(rev

10、erseNum);,例子,作业,A(1):输入一个三位整数,并将其每位依次前移(最高位变为最低位)后输出,字 面 值(常量值),字面值是指直接以值的形式表示的常量值,通常通过在字面值后加上后缀以说明字面值的类型。,转义字符,同 C 语言相同 单引号 双引号 “ 反斜杠 警告 a 换行 n 回车 r 水平制表符 t,转义字符,在字符串前加上符号,可创建一个verbatim型字符串,编译器会严格按照原样对verbatim字符串进行解释,也就是说,编译器会保留该字符串的换行信息,并取消转义字符的作用。,string path1 = “c:Program filesInternet Exploreri

11、explore.exe” / 等价于 string path2 = “c:Program filesInternet Exploreriexplore.exe”string code = ”static void Main(string args) System.Console.WriteLine(”Sample code.”); ”,当需要使用 “ 时,可通过两个 ” 替代,即 ”。,运算符,数学运算符 例子:ch03Ex02。 赋值运算符 运算符的优先级,命名空间,命名空间的作用 对项目进行分类 不同的项目可使用不同的命名空间进行标识,统一进行组织。 避免命名冲突 通过命名空间的使用,可解

12、决变量命名重名的问题,不同命名空间中可使用相同的名字,不会造成命名冲突。,命名空间,.NET Framework 使用命名空间对框架库进行分类,.NET Framework 类库,System.Data,System,System.Drawing,System.Net,System.Web,System.Media,System.IO,System.Xml,System.Security,System.Text,.NET Framework 框架库是通过命名空间进行分类组织的,不同模块的功能分别在不同的命名空间中定义。,命名空间,命名空间的用法 使用关键字“namespace”定义命名空间。,

13、namespace Project class Programstatic void Main(string args)Console.WriteLine(“Hello!”); ,定义命名空间Project,命名空间,命名空间中名称的访问 使用.号来访问命名空间中的名称,namespace StudentManagement struct StudentInfo /* */ class Program static void Main(string args)StudentManagement.StudentInfo someBody;someBody.Name = “张三”;someBody

14、.Sex = “男”;,使用.号访问命名空间中的名字。,命名空间的嵌套,命名空间中也可以包含命名空间,namespace Management namespace StudentManagementstruct StudentInfo /* */ ,嵌套命名空间的访问方法,类似于文件路径的访问方法,即可使用绝对路径,又可使用相对路径。,命名空间的嵌套,嵌套命名空间名称的访问 (1),namespace Management namespace StudentManagementstruct StudentInfo /* */ class Program static void Main() S

15、tudentManagement.StudentInfo someBody;,即可使用相对命名空间访问 Student ,即 StudentManagement.Student,也可使用绝对命名空间访问,即 Management.StudentManagement.Student.,命名空间的嵌套,嵌套命名空间名称的访问 (2),struct StudentInfo /* */ namespace Management struct StudentInfo /* */ namespace StudentManagementclass Program static void Main() Stu

16、dentInfo someBody;,在当前命名空间上层的名称可直接访问,编译器将自动查找并使用离当前 命名空间层次最近的名称,在此例中,将使用 Management.Student 。,命名空间,using 语句 当命名空间嵌套很深时,可使用 using 语句来简化对命名空间的访问,using 语句可把指定命名空间中的所有名字引入到当前的命名空间中,用法:,using ;,命名空间,using 语句使用示例(1),/ 在这里引入命名空间 System 中的所有名字,以便使用其中 / 的 Console 类进行输入输出。 using System;class Program static vo

17、id Main(string args)Console.WriteLine(“Hello world!”); ,命名空间,using 语句使用示例(2),namespace StudentManagement struct StudentInfo /* */ / 将 StudentManagement 引入全局名字空间 using StudentManagement;class Program static void Main(string args)StudentInfo someBody;someBody.Name = “张三”;someBody.Sex = “男”;,当名称没有包含在名称

18、空间时,名称将定义在全局名称空间中。,命名空间,using 语句使用示例(3),namespace StudentManagement struct StudentInfo /* */ namespace Main / 将 StudentManagement 引入 Main 名字空间using StudentManagement;class Program static void Main(string args) StudentInfo someBody;/ / 在这里是无法访问到名字 StudentInfo 的。,命名空间Main 中引入了命名空间SM中的所有名字,所以可以直接使用该命名空

19、间中的名字。,命名空间,命名空间别名 考虑如下情况:,namespace StudentManagement struct StudentInfo /* */ namespace Main using StudentManagement;struct StudentInfo /* */ class Program static void Main(string args) StudentInfo someBody;/ ,命名空间Main 和SM中都有StudentInfo,这样会产生名称冲突,无法通过编译。,命名空间,命名空间别名 为了解决这个问题,引入命名空间别名的概念 命名空间别名是用来给

20、指定的命名空间起一个别名,以解名称冲突和简化命名空间的访问。命名空间别名的用法,using = ;,命名空间,命名空间别名的使用,通过命名空间别名SM的使用,可以解决命名冲突的问题,当命名空间层次很多时,还可简化命名空间的访问。,namespace StudentManagement struct StudentInfo /* */ namespace Main using SM = StudentManagement;struct StudentInfo /* */ class Program static void Main(string args) StudentInfo someBody;SM.StudentInfo my;/ ,命名空间完整示例,示 例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报