1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,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、自动启动安装程序,(,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的安装,
3、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,Micros
4、oft 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
5、 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#,在“起始页”对话框选中“创建
6、项目”,在弹出的“新建项目”对话框的“项目类型”框中选择“,Visual C#”,下,Windows,项,在“模板”框中选择“,Windows,窗体应用程序”,在“名称”中输入要新建的项目文件名称,在“位置”处通过“浏览”按钮设置文件存放位置,单击“确定”,3,Microsoft Visual Studio2008,集成开发环境介绍,(,2,),VisualStudio.NET,开发环境,菜单栏,工具栏,“工具箱”面板,“属性”面板,解决方案资源管理器,4,使用,Microsoft Visual Studio2008,集成开发环境开发,WinForm,应用程序,学生信息管理系统,任务,1.2
7、编写简单的控制台输出程序,利用控制台输出“,C_SHARP,欢迎你!”,任务解决方案,(,1,)选择“开始”“程序”“,Microsoft Visual Studio 2008”“Microsoft Visual Studio 2008”,命令,(,2,)启动,Visual Studio2008,开发环境之后,在菜单栏中选择“文件”“新建”“项目”命令,(,3,)选择“控制台应用程序”,在名称框中输入“,Welcome”,,然后单击“确定”按钮,完成控制台应用程序的创建,(,4,)输入代码,(,5,)单击“调试”,|“,启动调试”,或按,F5,键运行,输入代码,using System;,u
8、sing,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,)运行程序,编写
9、代码注意以下几点,(,1,),C#,源文件,#,源文件以,.,cs,作为扩展名,可执行文件(,.exe,文件)后可以脱离,VisualStudio.NET,环境直接运行,(,2,),C#,基本语法,语句以一个分号“;”结尾,结构语句用花括号“,.”,组合为语句块,(,3,)注释行,注释行用于帮助源程序的阅读,计算机在程序运行时不执行注释行,以“,/”,开始的注释叫“单行注释”,多行注释以“,/*”,开始至“*,/”,结束,(,4,),Main(),方法,Main(),方法是程序的入口点,也是出口点。,输入和输出,该语句是一句输出语句,其目的是要将字符串“,C_SHARP,欢迎你!”显示到屏幕上
10、Console,是程序集,System,命名空间下的一个类,WriteLine,()则是,Console,类的一个用于将字符串信息显示到屏幕上的方法,Console.WriteLine(C_SHARP,欢迎你!,);,类的常用方法,名称,接受,参数,返回值类型,用途,Read,无,int,从输入流读入下一个字符,至换行符结束。,ReadKey,无,ConsoleKeyInfo,从输入流读入一个字符。,ReadLine,无,string,从输入流读入一行文本,至换行符结束。,Write,string,void,输出一行文本。,WriteLine,string,void,输出一行文本,并在结尾处
11、自动换行。,Write,和,WriteLine,的常用参数,Write,和,WriteLine,可以接受多种类型的参数,包括字符串、字符、整数、浮点数等,Write,和,WriteLine,也可以对输入的参数进行格式化输出,Console.Write(123);/,输出整数,Console.WriteLine(123);/,输出整数并换行,Console.WriteLine(15.25);/,输出浮点数并换行,格式化输出,将形如,0,、,1,的指代标记包含在方法的参数中,其后的变量列表则分别用以取代这些标记,格式化时最多只能接受,4,个参数(即指代标记最大为,3,),string s=Mike
12、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.Re
13、ad,();,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,方法可以获取用户按下的下一个字符或功能
14、键,在程序的最后加上调用该方法的语句,使程序执行到该语句时暂停,static void,Main(string,args,),Console.WriteLine(C_SHARP,欢迎你!,);,Console.ReadKey,();,当用户从键盘上输入字符时退出,任务,1.3,制作一个欢迎界面,在文本框中输入姓名,单击“确定”命令按钮,在文本框中显示欢迎语句,任务解决方案,(,1,)选择“文件”“新建”“项目”命令,(,2,)选择,Windows,项目类型,选择,Windows,应用程序,输入项目的名称“,Welcom_w,”,后,点击“确定”按钮,(,3,)选择,Label,控件、,Text
15、Box,控件和,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,命名
16、空间内的资源,注意不能写成“,using,System.Console,;”Console,是命名空间,System,下的类,不是命名空间,若不用,using System,语句,任务,1.2,中的输出语句则不能省略,System,,应修改为,static void,Main(string,args,),System .,Console.WriteLine(C_SHARP,欢迎你!,);,System .,Console.ReadKey,();,控件、事件的使用,窗体及控件都是对象,因此可以直接定义其外观属性、行为方法以及编写与用户交互的事件代码,以满足不同需求,当用户单击鼠标或按下按键,程序
17、可以被激活并且做一些事情,例如:程序员只需要对用户单击“确定”命令按钮定义执行的操作,即为,Button,按钮定义了一个,Click,事件的响应方法,button1_Click,()。,总结,什么是,.NET,?,控制台程序与,Windows,应用程序如何创建?,谢 谢!,C#,程序设计,第,2,章,C#编程基础,本章任务,能正确使用,C#,的常量与变量,能正确读取数据,能正确格式化输出数据,能正确使用算术运算符及表达式,能正确使用逻辑运算符及表达式,能按照程序编写规范书写程序代码,任务,2.1,制作简单加法计算器,在文本框中输入加数和被加数,单击“计算”按钮后,显示加法运算结果,单击“关闭,
18、按钮后退出,任务,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,Nam
19、e,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,
20、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,_,Cl
21、ick(object,sender,EventArgs,e),this.Close,();,关闭窗体,1.,变量的定义,用户的角度,在程序执行过程中值会发生改变的数据,当需要保存特定的值或计算结果时,需要用到变量,计算机的角度,变量代表存储地址,变量的类型决定了存储在变量中的数值的类型,变量有,3,个属性,存储变量值的存储位置,存储位置中数据的数据类型,用来引用该存储位置的名称,(,1,)变量,x=100,x=50,(,3,)变量的命名规范,有利于程序的设计和维护,使名称具有一定的意义,避免冗长,Pascal,表示法,Camal,表示法,匈牙利表示法等,对类名、类的属性、类的方法采用,Pasc
22、al,命名法,,Pascal,表示法将标识符的首字母和后面连接的每个单词的首字母都大写,例如:,BackColor,、,ForeColor,对变量、对象采用,Camal,命名法,也叫驼峰命名法,,Camal,表示法以小写字母开头,以后的单词都以大写字母开头。,例如:,redValue,、,myBook,、,sizeOfChar,匈牙利表示法中变量名由变量的属性、类型及对象的描述三部分组成。,例如:,iMyCar,、,cMyCar,2.,变量的声明,由于变量表示一个值在内存中的存储地址,因此在使用变量前必须先声明变量名和数据类型,声明变量的一般格式为:,数据类型 变量名表;,例如:在任务,2.1
23、中使用的语句。,int,op1;,int,op2;,int,result;,3.,变量的赋值,变量在使用前必须赋值,赋值运算符“,=”,可以将运算符右侧的值赋予左侧的变量,赋值运算要求赋值号“,=”,右边和左边的数据类型完全一致,否则会编译出错。,还可以在变量声明的同时给变量赋初值,S=100,;,op1=Int32.Parse(txtSum1.Text);,int b=100;,string c1=abc;,4.,变量的作用域,变量的作用域,也叫变量的生命周期,变量只有在它的生命周期内才可以被访问,超过生命周期,任何对它的访问和使用都会产生编译错误,变量的作用域一般由变量声明的位置决定,在
24、作用域内声明的变量对于作用域外的代码是不可见的。,变量的作用域大致包括以下几种:,静态变量作用域,实例变量作用域,方法参数作用域,局部变量作用域,异常处理作用域,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,的作用域为方法参数作用域
25、变量,d,的作用域为局部变量作用域,变量,e,的作用域为异常处理作用域,静态变量作用域:,静态变量使用,static,修饰符声明,它的生存期为整个源程序。,实例变量作用域:,当一个类的实例被创建时,其实例成员变量的生命周期开始,当该实例不再被使用,实例所占内存空间将被释放时,实例成员变量的生命周期结束。,方法参数作用域:,方法参数变量的其作用域仅限于该方法内,方法被调用时,它的生命周期开始,方法执行完毕,它的生命周期结束。,局部变量作用域:,局部变量作用域仅限于它被定义的语句块内,当该语句块结束后,其生命周期结束。,异常处理参数作用域:,异常处理参数变量的生命周期只在错误处理语句块内(即,c
26、atch,语块内)存在。,注意,:,变量只有在被声明后才有效,如果在代码块的结尾处声明了一个变量,由于没有任何代码可以访问它,它将没有任何作用。,常量,(,1,)常量的定义,:,常量即值不会发生改变的量,常量分为直接常量和符号常量,直接常量是指在程序中直接给出数值或字符串的常量,例如:,12345,、,“name”,。,符号常量是经过声明的常量,包括常量的名称和它的值。声明常量的一般格式如下:,const,数据类型 表达式,例如:,const,int,yearmonth,=12;,const double,conpi,=3.1415926;,声明了,int,型常量,yarmonth,声明了,d
27、ouble,型常量,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;/,私有常量,pu
28、blic const,int,DaysInYear,=365;/,公有常量,(,2,)使用常量的优点,常量用易于理解的名称替代了含义不明确的数字或字符串,使程序更易于阅读,常量使程序更易于修改,常量更易于避免程序出现错误。如果要给程序中的常量再次赋值,编译器立刻就会报告错误,2.1.2,基本数据类型,1.,值类型,值类型主要由简单类型、枚举类型和结构类型这三类组成,种类,描述,值类型,简单类型(,Simple types,),有符号整数:,sbyte,short,int,long,无符号整数:,byte,ushort,uint,ulong,Unicode,字符:,char,IEEE,浮点数:,
29、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,0
30、4 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,位精度,
31、C#,支持,2,种浮点类型:单精度(,float,)和双精度(,double,),它们的差别在于取值范围和精度不同,用,F,表示,float,,,M,表示,decimal,,,D,表示,double,,如果没有标志字符则默认为,double,类型,例,2.1,浮点数相加。在任务,2.1,的基础上,将操作数的数据类型由整型改为浮点型,实现浮点数相加,将,op1,、,op2,、,result,三个变量改为单精度浮点型,将,txtSum1.Text,数据类型转为单精度浮点型,修改应用程序代码,在窗体设计器中双击“计算”按钮,将其,Click,事件处理程序修改如下:,private void,btnc
32、alc,_,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,位有效位,数据类型不仅可以是浮点
33、类型,还可以是小数类型,decimal,decimal,类型适合金融和货币方面的运算,decimal,是一种高精度、,128,位数据类型,它所表示的范围从大约,1.010287.91028,的,28,位至,29,位有效数字,运算结果准确到,28,个小数位,Decimal,类型的取值范围比,double,类型的范围要小的多,但它更精确,十进制小数数字可以用,decimal,类型来表示。,例,2,.,2,修改数据类型为,decimal,型,将上例程序中的数据类型由,float,型修改为,decimal,型。,修改应用程序代码,在窗体设计器中双击“计算”按钮,将其,Click,事件处理程序修改如下:
34、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,
35、字符集,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
36、警报,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,,布尔型和其他类型之间
37、不能互相转换。,例如:,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,结构名,结构值表,
38、例如,结构类型可以由不同类型的数据组成,Student,结构体包含了,6,个简单数据类型变量,这,6,个变量称为结构的成员,访问成员需要使用成员访问运算符“,.”,格式如下:,结构类型变量,.,成员变量,例如,Student std;,std.Id,=20081215;,std.Nmae,=,王华,;,std.Sex,=,女,;,std.Age,=21;,std.Score,=435;,std.Address,=,合肥,;,Console.WriteLine,(,学号,:+,std.Id,);,结构类型的成员数据类型没有限制,它可以是简单数据类型、复杂数据类型,甚至是结构类型。,Stude
39、nt,结构类型嵌套一个结构类型的,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
40、中字符串可分为规则字符串和逐字字符串,规则字符串,它可以包括简单转义序列、十六进制转义序列和,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#,中可以进行的隐
41、式数值转换见下表,隐式数值转换,转换前数据类型,转换后前数据类型,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,
42、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;,
43、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,、,ul
44、ong,或,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,s
45、byte,、,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;,Conso
46、le.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
47、),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=82457885
48、26;,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
49、catch(,数据类型 标识符,),语句块,2,finally,语句块,3,try,子句,catch,子句,finally,子句,整型数据算术溢出和整型之间的转换溢出,会在运行时引发,OverflowException,异常;,float,、,double,或,decimal,值转换为整型时如果整数值不在目标范围,则会引发,InvalidCastException,异常;,decimal,类型算术运算溢出,则会引发,OverflowException,异常;,将,float,或,double,转换成,decimal,时,如果源值为,NaN,(非数值)、无穷大或因过大而无法表示,decimal
50、时,则会引发,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);,总结,变量如何定义与赋值,?,常量如何定义与赋值?,数据如何进行类型转换






