资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,C#,程序设计,第,1,章,认识Visual C#,本章任务,了解,Microsoft Visual Studio2008,;,能编写简单控制台应用程序,;,能编写简单,Windows,应用程序,;,任务 1.1,Microsoft Visual tudio2008的安装,安装,Microsoft Visual Studio2008,软件。,任务 1.1 Microsoft Visual tudio2008的安装,(,1,)将,Microsoft Visual Studio2008,软件安装光盘放入光驱,系统将自动启动安装程序,(,2,)单击“安装,Visual Studio2008”,任务 1.1 Microsoft Visual tudio2008的安装,(,3,)加载组件完成后,单击对话框中的“下一步”按钮,任务 1.1 Microsoft Visual tudio2008的安装,(,4,)选择“我已阅读并接受许可条款”单选按钮,并在“名称”文本框中输入用户姓名,然后单击“下一步”按钮,任务 1.1 Microsoft Visual tudio2008的安装,(,5,)选择需要安装的功能单选按钮,并且确定安装目标文件夹,任务 1.1 Microsoft Visual tudio2008的安装,(,6,)单击“安装”按钮,进入了安装程序的安装页,任务 1.1 Microsoft Visual tudio2008的安装,(,7,)安装完成后,打开对话框,单击“完成”按钮,弹出“安装程序”对话框,任务 1.1 Microsoft Visual tudio2008的安装,第一次启动,Visual Studio2008,,选择“,Visual C#,开发设置”后单击“启动,Visual Studio”,1.1.1,Microsoft Visual Studio2008,集成开发环境,1,什么是,.NET,2,Microsoft Visual Studio2008,的安装环境,3,Microsoft Visual Studio2008,集成开发环境介绍,4,使用,Microsoft Visual Studio2008,集成开发环境开发,WinForm,应用程序,1,什么是,.NET,(,1,),.NET,平台,(,2,),VisualC#.NET,的特点,语法更简单;,保留了,C+,的强大功能;,快速应用开发功能;,语言的自由性;,强大的,Web,服务器控件;,支持跨平台;,与,XML,相融合。,2,Microsoft Visual Studio2008,的安装环境,(,1,)支持的操作系统,Microsoft Windows XP,Microsoft Windows Server 2003,Windows Vista,(,2,)硬件要求,最低要求:,1.6 G Hz CPU,、,384 MB RAM,、,1024x768,显示器、,5400 RPM,(转,/,分钟)硬盘。,建议配置:,2.2 GHz,或更快的,CPU,、,1024 MB,或更大容量的,RAM,、,1280 x1024,显示器、,7200 RPM,或更高转速的硬盘,Windows Vista,上要求:,2.4 GHz CPU,、,768 MB RAM,硬盘的空间至少,4G,。,3,Microsoft Visual Studio2008,集成开发环境介绍,(,1,)启动,C#,在“起始页”对话框选中“创建:项目”,在弹出的“新建项目”对话框的“项目类型”框中选择“,Visual C#”,下,Windows,项,在“模板”框中选择“,Windows,窗体应用程序”,在“名称”中输入要新建的项目文件名称,在“位置”处通过“浏览”按钮设置文件存放位置,单击“确定”,3,Microsoft Visual Studio2008,集成开发环境介绍,(,2,),VisualStudio.NET,开发环境,菜单栏,工具栏,“工具箱”面板,“属性”面板,解决方案资源管理器,4,使用,Microsoft Visual Studio2008,集成开发环境开发,WinForm,应用程序,学生信息管理系统,任务,1.2,编写简单的控制台输出程序,利用控制台输出“,C_SHARP,欢迎你!”,任务解决方案,(,1,)选择“开始”“程序”“,Microsoft Visual Studio 2008”“Microsoft Visual Studio 2008”,命令,(,2,)启动,Visual Studio2008,开发环境之后,在菜单栏中选择“文件”“新建”“项目”命令,(,3,)选择“控制台应用程序”,在名称框中输入“,Welcome”,,然后单击“确定”按钮,完成控制台应用程序的创建,(,4,)输入代码,(,5,)单击“调试”,|“,启动调试”,或按,F5,键运行,输入代码,using System;,using,System.Collections.Generic,;,using,System.Linq,;,using,System.Text,;,namespace Welcome,class Program,static void,Main(string,args,),Console.WriteLine(C_SHARP,欢迎你!,);,Console.ReadKey,();,输出,C_SHARP,欢迎你!,语句,等待用户用键盘输入任何语句,退出程序,C#,工程项目的创建、编译和执行,1,C#,工程项目的创建,2,编写代码,3,项目编译和运行程序,(,1,)编译程序,(,2,)运行程序,编写代码注意以下几点,(,1,),C#,源文件,#,源文件以,.,cs,作为扩展名,可执行文件(,.exe,文件)后可以脱离,VisualStudio.NET,环境直接运行,(,2,),C#,基本语法,语句以一个分号“;”结尾,结构语句用花括号“,.”,组合为语句块,(,3,)注释行,注释行用于帮助源程序的阅读,计算机在程序运行时不执行注释行,以“,/”,开始的注释叫“单行注释”,多行注释以“,/*”,开始至“*,/”,结束,(,4,),Main(),方法,Main(),方法是程序的入口点,也是出口点。,输入和输出,该语句是一句输出语句,其目的是要将字符串“,C_SHARP,欢迎你!”显示到屏幕上,Console,是程序集,System,命名空间下的一个类,WriteLine,()则是,Console,类的一个用于将字符串信息显示到屏幕上的方法,Console.WriteLine(C_SHARP,欢迎你!,);,类的常用方法,名称,接受,参数,返回值类型,用途,Read,无,int,从输入流读入下一个字符,至换行符结束。,ReadKey,无,ConsoleKeyInfo,从输入流读入一个字符。,ReadLine,无,string,从输入流读入一行文本,至换行符结束。,Write,string,void,输出一行文本。,WriteLine,string,void,输出一行文本,并在结尾处自动换行。,Write,和,WriteLine,的常用参数,Write,和,WriteLine,可以接受多种类型的参数,包括字符串、字符、整数、浮点数等,Write,和,WriteLine,也可以对输入的参数进行格式化输出,Console.Write(123);/,输出整数,Console.WriteLine(123);/,输出整数并换行,Console.WriteLine(15.25);/,输出浮点数并换行,格式化输出,将形如,0,、,1,的指代标记包含在方法的参数中,其后的变量列表则分别用以取代这些标记,格式化时最多只能接受,4,个参数(即指代标记最大为,3,),string s=Mike,Console.Write(Hello,0,s);,Console.WriteLine(Project:0,Language:1,Version:2,Console,C#,2008);,输出为:,Hello,Mike,输出为:,Project:Console,Language:C#,Version:2008,Console.Read,()方法,Read,方法可以从标准输入流中读取下一个字符,且只能读取一个字符,如果输入的是数字字符时,要注意输入的是数字字符的,ASCII,码值,static void,Main(string,args,),int,i;,i=,System.Console.Read,();,System.Console.WriteLine(i,);,当输入“,1”,时,输出的值是,49,Console.ReadLine,()方法,ReadLine,方法可以从标准输入流读取下一行字符,static void Main(string args),string s;,System.Console.WriteLine(,请输入姓名:,);,s=System.Console.ReadLine();,System.Console.WriteLine(,您的输入的姓名是:,0,s);,Console.ReadKey,()方法,ReadKey,方法可以获取用户按下的下一个字符或功能键,在程序的最后加上调用该方法的语句,使程序执行到该语句时暂停,static void,Main(string,args,),Console.WriteLine(C_SHARP,欢迎你!,);,Console.ReadKey,();,当用户从键盘上输入字符时退出,任务,1.3,制作一个欢迎界面,在文本框中输入姓名,单击“确定”命令按钮,在文本框中显示欢迎语句,任务解决方案,(,1,)选择“文件”“新建”“项目”命令,(,2,)选择,Windows,项目类型,选择,Windows,应用程序,输入项目的名称“,Welcom_w,”,后,点击“确定”按钮,(,3,)选择,Label,控件、,TextBox,控件和,Button,控件并将其放置在窗体,Form1,上,(,4,)修改,Label1,控件和,Button1,控件的属性值,(,5,)双击按钮,Button1,,编辑代码,(,6,)运行程序,代码分析,private void button1_Click(object sender,EventArgs,e),textBox2.Text=C#,世界欢迎你,-“+textBox1.Text;,使用文本框,Text,属性输出,“,+”,作用将两个字符串连接起来。,using,语句,using,语句用于导入命名空间,“,using System,;”语句表示可以直接使用,System,命名空间内的资源,注意不能写成“,using,System.Console,;”Console,是命名空间,System,下的类,不是命名空间,若不用,using System,语句,任务,1.2,中的输出语句则不能省略,System,,应修改为,static void,Main(string,args,),System .,Console.WriteLine(C_SHARP,欢迎你!,);,System .,Console.ReadKey,();,控件、事件的使用,窗体及控件都是对象,因此可以直接定义其外观属性、行为方法以及编写与用户交互的事件代码,以满足不同需求,当用户单击鼠标或按下按键,程序可以被激活并且做一些事情,例如:程序员只需要对用户单击“确定”命令按钮定义执行的操作,即为,Button,按钮定义了一个,Click,事件的响应方法,button1_Click,()。,总结,什么是,.NET,?,控制台程序与,Windows,应用程序如何创建?,谢 谢!,C#,程序设计,第,2,章,C#编程基础,本章任务,能正确使用,C#,的常量与变量,能正确读取数据,能正确格式化输出数据,能正确使用算术运算符及表达式,能正确使用逻辑运算符及表达式,能按照程序编写规范书写程序代码,任务,2.1,制作简单加法计算器,在文本框中输入加数和被加数,单击“计算”按钮后,显示加法运算结果,单击“关闭,”,按钮后退出,任务,2.1,制作简单加法计算器,处理“计算”按钮的,Click,事件,处理“关闭”按钮的,Click,事件,分四步实现,:,任务解决方案,1.,创建名为,summator,的,Windows,项目,2.,选择,Label,、,Textbox,和,Button,等控件放到窗体的适当位置,并设置控件属性,3.,编写应用程序代码,4.,测试程序,表,2.1,属性表,控件,属性,设置,控件,属性,设置,Form1,Name,frmsum,Label4,Name,lblResult2,Text,Text,简单的加法计算器,Textbox1,Name,txtSum1,Label1,Name,lblSum1,Textbox2,Name,txtSum2,Text,被加数:,Label2,Name,lblSum2,Button1,Name,btncalc,Text,加数:,Text,计算,Label3,Name,lblResult1,Button2,Name,btnClose,Text,相加结果为:,Text,关闭,代码,双击“计算”按钮,在其,Click,事件的响应方法,btncalc,_Click,()中,插入下列代码:,private void,btncalc,_,Click(object,sender,EventArgs,e),int,op1,;,int,op2;,int,result;,op1=Int32.Parse(txtSum1.Text);,op2=Int32.Parse(txtSum2.Text);,result=op1+op2;,lblResult2.Text=,result.ToString,();,定义,3,个整型变量,op1,,,op2,和,result,将字符型的文本框的值转换为,32,位整数后赋给整型变量,将结果,result,的值转换为字符型后赋值给标签控件,Text,属性,代码,双击“关闭”按钮,在其,Click,事件的响应方法,btnClose,_Click,()中,插入下列代码:,private void,btnClose,_,Click(object,sender,EventArgs,e),this.Close,();,关闭窗体,1.,变量的定义,用户的角度,在程序执行过程中值会发生改变的数据,当需要保存特定的值或计算结果时,需要用到变量,计算机的角度,变量代表存储地址,变量的类型决定了存储在变量中的数值的类型,变量有,3,个属性,存储变量值的存储位置,存储位置中数据的数据类型,用来引用该存储位置的名称,(,1,)变量,x=100,x=50,(,3,)变量的命名规范,有利于程序的设计和维护,使名称具有一定的意义,避免冗长,Pascal,表示法,Camal,表示法,匈牙利表示法等,对类名、类的属性、类的方法采用,Pascal,命名法,,Pascal,表示法将标识符的首字母和后面连接的每个单词的首字母都大写,例如:,BackColor,、,ForeColor,对变量、对象采用,Camal,命名法,也叫驼峰命名法,,Camal,表示法以小写字母开头,以后的单词都以大写字母开头。,例如:,redValue,、,myBook,、,sizeOfChar,匈牙利表示法中变量名由变量的属性、类型及对象的描述三部分组成。,例如:,iMyCar,、,cMyCar,2.,变量的声明,由于变量表示一个值在内存中的存储地址,因此在使用变量前必须先声明变量名和数据类型,声明变量的一般格式为:,数据类型 变量名表;,例如:在任务,2.1,中使用的语句。,int,op1;,int,op2;,int,result;,3.,变量的赋值,变量在使用前必须赋值,赋值运算符“,=”,可以将运算符右侧的值赋予左侧的变量,赋值运算要求赋值号“,=”,右边和左边的数据类型完全一致,否则会编译出错。,还可以在变量声明的同时给变量赋初值,S=100,;,op1=Int32.Parse(txtSum1.Text);,int b=100;,string c1=abc;,4.,变量的作用域,变量的作用域,也叫变量的生命周期,变量只有在它的生命周期内才可以被访问,超过生命周期,任何对它的访问和使用都会产生编译错误,变量的作用域一般由变量声明的位置决定,在作用域内声明的变量对于作用域外的代码是不可见的。,变量的作用域大致包括以下几种:,静态变量作用域,实例变量作用域,方法参数作用域,局部变量作用域,异常处理作用域,public class,DomainTest,private,int,a;,static,int,b;,public,int,GetA,(),return a;,public void,SetA,(,int,c ),int,d;,public void,TryFunction,(),try,catch(Exception e),变量,a,的作用域为实例变量作用域,变量,b,的作用域为静态变量作用域,变量,c,的作用域为方法参数作用域,变量,d,的作用域为局部变量作用域,变量,e,的作用域为异常处理作用域,静态变量作用域:,静态变量使用,static,修饰符声明,它的生存期为整个源程序。,实例变量作用域:,当一个类的实例被创建时,其实例成员变量的生命周期开始,当该实例不再被使用,实例所占内存空间将被释放时,实例成员变量的生命周期结束。,方法参数作用域:,方法参数变量的其作用域仅限于该方法内,方法被调用时,它的生命周期开始,方法执行完毕,它的生命周期结束。,局部变量作用域:,局部变量作用域仅限于它被定义的语句块内,当该语句块结束后,其生命周期结束。,异常处理参数作用域:,异常处理参数变量的生命周期只在错误处理语句块内(即,catch,语块内)存在。,注意,:,变量只有在被声明后才有效,如果在代码块的结尾处声明了一个变量,由于没有任何代码可以访问它,它将没有任何作用。,常量,(,1,)常量的定义,:,常量即值不会发生改变的量,常量分为直接常量和符号常量,直接常量是指在程序中直接给出数值或字符串的常量,例如:,12345,、,“name”,。,符号常量是经过声明的常量,包括常量的名称和它的值。声明常量的一般格式如下:,const,数据类型 表达式,例如:,const,int,yearmonth,=12;,const double,conpi,=3.1415926;,声明了,int,型常量,yarmonth,声明了,double,型常量,conpi,注意,常量不能像变量一样更改它的值或给它们赋新值。,const,int,yearmonth,=12;,yearmonth,=22;/,错误,const double,conpi,=3.1415926;,conpi,=3.14;/,错误,但是利用表达式形式声明常量是允许的。,const,int,c1=10;,const,int,c2=c1+100;,与变量的声明语句类似还可以在,const,前加上访问标识符,用于规定常量的作用域,格式如下:,访问标识符,const,数据类型 表达式,private const,int,WordDays,=200;/,私有常量,public const,int,DaysInYear,=365;/,公有常量,(,2,)使用常量的优点,常量用易于理解的名称替代了含义不明确的数字或字符串,使程序更易于阅读,常量使程序更易于修改,常量更易于避免程序出现错误。如果要给程序中的常量再次赋值,编译器立刻就会报告错误,2.1.2,基本数据类型,1.,值类型,值类型主要由简单类型、枚举类型和结构类型这三类组成,种类,描述,值类型,简单类型(,Simple types,),有符号整数:,sbyte,short,int,long,无符号整数:,byte,ushort,uint,ulong,Unicode,字符:,char,IEEE,浮点数:,float,double,十进制数:,decimal,布尔值:,bool,枚举类型(,Enum,type,),enum,E.,结构类型(,Struct,type,),struct,S.,(,1,)整型类型,描述,位数,数据类型,取值范围,有符号整数,8,sbyte,128127,16,short,32 76832 767,32,int,2 147 483 6482 147 483 647,64,long,9 223 372 036 854 775 8089 223 372 036 854 775 807,无符号整数,8,byte,0255,16,ushort,065 535,32,uint,04 294 967 295,64,ulong,018 446 744 073 709 551 615,C#,定义了,8,种整型变量,不同整型类型数据在内存中占用的内存位数各不相同,对所有整型类型变量赋值都默认是十进制数,要使用十六进制的值,则需要添加,0 x,前缀,一个整数没有任何显示的声明,则该变量默认为,int,类型,若将数据指定为其他整数类型,则必须加上后缀,(,2,)浮点类型,描述,位数,数据类型,取值范围,单精度浮点型,32,float,1.5,1045,到,3.4,1038,,,7,位精度,双精度浮点型,64,double,5.0,10324 1.7,10308,,,15,位精度,C#,支持,2,种浮点类型:单精度(,float,)和双精度(,double,),它们的差别在于取值范围和精度不同,用,F,表示,float,,,M,表示,decimal,,,D,表示,double,,如果没有标志字符则默认为,double,类型,例,2.1,浮点数相加。在任务,2.1,的基础上,将操作数的数据类型由整型改为浮点型,实现浮点数相加,将,op1,、,op2,、,result,三个变量改为单精度浮点型,将,txtSum1.Text,数据类型转为单精度浮点型,修改应用程序代码,在窗体设计器中双击“计算”按钮,将其,Click,事件处理程序修改如下:,private void,btncalc,_,Click(object,sender,EventArgs,e),float op1,op2,result;,op1=Single.Parse(txtSum1.Text);,op2=Single.Parse(txtSum2.Text);,result=op1+op2;,lblResult2.Text=,result.ToString,();,测试程序,定义浮点型变量,将文本框,Text,属性转换成浮点型,将浮点型转换成字符串,(,3,)小数类型,描述,位数,数据类型,取值范围,小数类型,128,decimal,1.0,10287.9,1028,29,位有效位,数据类型不仅可以是浮点类型,还可以是小数类型,decimal,decimal,类型适合金融和货币方面的运算,decimal,是一种高精度、,128,位数据类型,它所表示的范围从大约,1.010287.91028,的,28,位至,29,位有效数字,运算结果准确到,28,个小数位,Decimal,类型的取值范围比,double,类型的范围要小的多,但它更精确,十进制小数数字可以用,decimal,类型来表示。,例,2,.,2,修改数据类型为,decimal,型,将上例程序中的数据类型由,float,型修改为,decimal,型。,修改应用程序代码,在窗体设计器中双击“计算”按钮,将其,Click,事件处理程序修改如下:,private void,btncalc,_,Click(object,sender,EventArgs,e),decimal op1,op2,result;,op1=decimal.Parse(txtSum1.Text);,op2=decimal.Parse(txtSum2.Text);,result=op1+op2;,lblResult2.Text=,result.ToString,();,测试程序,定义,decimal,型变量,将文本框,Text,属性转换成,decimal,型,将,decimal,型转换成字符串,(,4,)字符类型,字符类型按照国际上公认的标准,采用,Unicode,字符集,Unicode,是一种国际字符集,可表示多个国家的字符,字符变量以无符号,16,位(,2,个字节)数字的形式存储,取值范围为,0,到,65535,在,C#,中可以直接在一个字符型变量中存储一个汉字。给字符变量赋值可以使用单引号,也可以使用字符的,ASCII,码,例如:,char c=A;,或,char c=(char)65;,字符类型,描述,位数,数据类型,取值范围,字符类型,16,char,在,065535,范围内以双字节编码的任意符号,转义符,转义序列,字符名称,Unicode,编码,单引号,0 x0027,双引号,0 x0022,反斜杠,0 x005C,0,空,0 x0000,a,警报,0 x0007,b,退格符,0 x0008,f,换页符,0 x000C,n,换行符,0 x000A,r,回车,0 x000D,t,水平制表符,0 x0009,v,垂直制表符,0 x000B,例如:向控制台输出一个单引号字符。,char c=;,Console.WriteLine(0,c);,或,char c=x0027;,Console.WriteLine(0,c);,通过转义符或,Unicode,表示法指代特殊的控制字符,(,5,)布尔型,布尔型用来表示“真”或“假”这两个概念,真”和“假”分别采用,true,和,false,两个值来表示,默认值是,false,,布尔型和其他类型之间不能互相转换。,例如:,bool,x=1 /,错误。只能写成,x=true,或,x=false,(,6,)结构类型,在程序执行过程中,往往需要使用更为复杂的数据结构。,编写“学生信息管理系统”,需要对学生信息处理,学生信息包括学号、姓名、性别、年龄等,C#,中提供了结构类型以解决这个问题,结构类型一般定义形式为:,struct,Student,public,int,Id;,public string Name;,public char Sex;,public,int,Age;,public,int,Score;,public string Address;,;,struct,结构名,结构值表,;,例如,结构类型可以由不同类型的数据组成,Student,结构体包含了,6,个简单数据类型变量,这,6,个变量称为结构的成员,访问成员需要使用成员访问运算符“,.”,格式如下:,结构类型变量,.,成员变量,例如,Student std;,std.Id,=20081215;,std.Nmae,=,王华,;,std.Sex,=,女,;,std.Age,=21;,std.Score,=435;,std.Address,=,合肥,;,Console.WriteLine,(,学号,:+,std.Id,);,结构类型的成员数据类型没有限制,它可以是简单数据类型、复杂数据类型,甚至是结构类型。,Student,结构类型嵌套一个结构类型的,Address,成员。,struct,Student,public,int,ID;,public string Name;,public string Address,public string city;,public string street;,public,int,no;,2.,引用类型,C#,中的另一类数据类型是引用类型,引用类型存储的是数据的地址,而不是具体的数据,C#,提供了类类型、字符串类型、数组类型、接口类型、委托类型等几种引用类型,字符串是由作为一个整体处理的一系列字符组成,字符串可以包含英文字母、汉字、数字及符号等,定界符用双引号表示,C#,中字符串可分为规则字符串和逐字字符串,规则字符串,它可以包括简单转义序列、十六进制转义序列和,Unicode,转义序列。,定义规则字符串:,String a=,hello,world,;/,hello,world,使用转义符:,String b=hello t world;/hello world,声明字符串:,String c=,hello,world,;/,hello,world,2.1.3,数据类型转换,1.,隐式数据转换,隐式数据转换就是系统默认的、不需要加以声明,在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换,转换过程中数据一般不会丢失。,C#,中可以进行的隐式数值转换见下表,隐式数值转换,转换前数据类型,转换后前数据类型,sbyte,short,、,int,、,long,、,float,、,double,或,decimal,byte,short,、,ushort,、,int,、,uint,、,long,、,ulong,、,float,、,double,或,decimal,short,int,、,long,、,float,、,double,或,decimal,ushort,int,、,uint,、,long,、,ulong,、,float,、,double,或,decimal,int,long,、,float,、,double,或,decimal,uint,long,、,ulong,、,float,、,double,或,decimal,long,float,、,double,或,decimal,ulong,float,、,double,或,decimal,char,ushort,、,int,、,uint,、,long,、,ulong,、,float,、,double,或,decimal,float,double,例,2.3,编写一个简单的控制台程序,实现隐式数据转换并输出。,class Program,static void,Main(string,args,),char a=A;,float b=99.9F;,int,c;,c=a;,Console.WriteLine(c,);,float d=,b+c,;,Console.WriteLine(d,);,2.,显式数据转换,转换前数据类型,转换后前数据类型,sbyte,byte,、,ushort,、,uint,、,ulong,或,char,byte,sbyte,或,char,short,sbyte,、,byte,、,ushort,、,uint,、,ulong,或,char,ushort,sbyte,、,byte,、,short,或,char,(续表),转换前数据类型,转换后前数据类型,int,sbyte,、,byte,、,short,、,ushort,、,uint,、,ulong,或,char,uint,sbyte,、,byte,、,short,、,ushort,、,int,或,char,long,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,ulong,或,char,ulong,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,long,或,char,char,sbyte,、,byte,或,short,float,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,long,、,ulong,、,char,或,decimal,double,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,long,、,ulong,、,char,、,float,或,decimal,decimal,sbyte,、,byte,、,short,、,ushort,、,int,、,uint,、,long,、,ulong,、,char,、,float,或,double,例,2.4,修改例,2.3,,实现显式数据转换,并输出转换后的结果。,class Program,static void,Main(string,args,),char a=A;,float b=(float)99.9;,int,c;,c=a;,Console.WriteLine(c,);,decimal d=(,decimal)b+c,;,Console.WriteLine(d,);,3.,使用方法进行数据类型的转换,(,1,),Parse,方法,ToString,方法可以将数值类型转换成字符串型,其返回值是,String,类型,使用方法:,数值类型数据,.,ToString,(),例如:,lblResult2.Text=,result.ToString,();,控制符,示例,运行结果,C,货币,2.5.ToString(C),¥,2.50,D,十进制数,25.ToString(D5),00025,E,科学型,25000.ToString(E),2.500000E+005,F,固定点,25.ToString(F2),25.00,G,常规,2.5.ToString(G),2.5,N,数字,2500000.ToString(N),2,500,000.00,X,十六进制,255.ToString(X),FF,2.1.3,算术溢出及显示转换溢出,1.,数据溢出,例,2.5,实现简单的数据计算。,(,1,)新建,windows,项目,名称为,calc,,将,Form1,从项目中删除,修改项目中的,Program.cs,主程序,代码:,public class calc,static void Main(),double x=8245788526;,int b=45648745;,int c=1547454577;,int y=(int)x;,int z=(int)(b*c);,MessageBox.Show(x=+x.ToString()+,(int)x=+y.ToString()+n+b=+b.ToString()+,c=+c.ToString()+,b*c=+z.ToString();,2.,异常,C#,程序在运行中经常会由于遇到一些轻微错误(异常),而中断程序的执行,异常处理可以通过使用,try,、,catch,和,finally,关键字定义代码块来实现,trycatchfinally,语句的语法格式:,try,语句块,1,catch(,数据类型 标识符,),语句块,2,finally,语句块,3,try,子句,catch,子句,finally,子句,整型数据算术溢出和整型之间的转换溢出,会在运行时引发,OverflowException,异常;,float,、,double,或,decimal,值转换为整型时如果整数值不在目标范围,则会引发,InvalidCastException,异常;,decimal,类型算术运算溢出,则会引发,OverflowException,异常;,将,float,或,double,转换成,decimal,时,如果源值为,NaN,(非数值)、无穷大或因过大而无法表示,decimal,时,则会引发,InvalidCastException,异常。,对例,2.5,中程序代码进行修改,可以捕获计算结果溢出的错误。,static void Main(),double x=8245788526;,int y;,try,checked,y=(int)x;,catch(,System.OverflowException,),MessageBox.Show,(,算术运算导致溢出,);,return;,MessageBox.Show(x,=+,x.ToString,()+,y=+,y.ToString,()+n);,总结,变量如何定义与赋值,?,常量如何定义与赋值?,数据如何进行类型转换
展开阅读全文