第2章C程序设计.1.ppt
《第2章C程序设计.1.ppt》由会员分享,可在线阅读,更多相关《第2章C程序设计.1.ppt(131页珍藏版)》请在三一办公上搜索。
1、ASP.Net 程序设计,张 凯 计算机学院 软件工程系,2010年9月15日,第二章 C#程序设计,C#语言概述,C#语言的变量和数据类型,C#语言的表达式和控制语句,ASP.Net自定义的类,4,1,2,3,C#语言概述,C#语言的产生背景C、C+、Pascal、Basic、Fortran、Java、C#.VC、Delphi、VB、VF、Eclipse、VC#,C#语言概述,C#语言的产生背景Delphi和.NET之父:安德斯海尔斯伯格(Anders Hejlsberg)丹麦,Turbo Pascal,C#编译器的主要作者Anders使用汇编语言撰写编译器,其功力无人能出其右。创造出了全世
2、界速度最快、品质也是一流的Pascal编译器。在Anders离开了Borland之后,几乎没有人能够修改Anders的编译器,C#语言概述,C#语言的产生背景Hejlsberg曾在丹麦科技大学学习工程学1981,Anders 和Philippe Kahn共同创办Borland。他将Turbo Pascal变成面向对象的、拥有可视化环境和卓越的数据库访问特性的应用程序开发语言Delphi。MS曾多次企图挖走Anders,但都没有成功。130万美元年薪外加股票期权和分红,总计超过300万美元。Java出现了,Philippe Kahn离开,Anders Hejlsberg在Borland一直郁郁不
3、得志。当清楚Anders Hejlsberg的想法后,比尔盖茨答应给他一个宽松的环境,既领导Visual J+小组。,C#语言概述,C#语言的产生背景然而,好景不长SUN公司认为微软破坏了java的跨平台性,很快微软就会利用它的VJ+将java开发人员拉拢到它的周围,而它的VJ+以及WFC的很多特性明显是为了Windows平台设计。SUN中止了对微软的java授权。此后微软便选择Anders Hejlsberg担任C#的首席设计师。Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手做出了Turbo Pascal,也是Delphi,J,C#和.NET
4、的主要作者。,.Net Framework命名空间,命名空间的功能命名空间用于组织.NET Framework提供的几千个类。使用命名空间可以解决类名冲突问题。,.Net Framework命名空间,命名空间的使用利用using语句使用命名空间,如“using System;”表示导入System命名空间。导入命名空间后,使用其包含的类时可省略命名空间。例如,若没有使用“using System.Net.Mail”语句,则定义“MailMessage MyMail”这个语句就会出现编译错误,此时就必须用System.Net.Mail.MailMessage MyMail代替。,.Net Fra
5、mework命名空间,ASP.Net常用命名空间 System:提供基本类,如提供字符串操作的String类。System.Configuration:提供处理配置文件中数据的类,如能获取web.config文件中数据库连接字符串的ConnectionStringSettings类。System.Data:提供对ADO.NET类的访问,如提供数据缓存的DataSet类。System.Ling:提供使用LINQ进行查询的类和接口,如包含标准查询运算符的Queryable类。,.Net Framework命名空间,ASP.Net常用命名空间 System.Web:提供使浏览器与服务器相互通信的类和
6、接口,如用于读取客户端信息的HttpRequest类。System.Web.Security:提供在Web服务器实现ASP.NET安全性的类,如用于验证用户凭据的MemberShip类。System.Web.UI:提供用于创建ASP.NET网站用户界面的类和接口,如每个Web窗体都继承的Page类。,.Net Framework命名空间,ASP.Net常用命名空间 System.Web.UI.HtmlControls:提供在Web窗体页上创建 HTML服务器控件的类。System.Web.UI.WebControls:提供在Web窗体页上创建Web服务器控件的类,如按钮Button控件类。Sy
7、stem.Web.UI.WebControls.WebParts:提供用于创建个性化Web部件页的类和接口,如呈现模块化用户界面的Part类。System.Xml.Linq:提供用于LINQ to XML的类,如获取XML元素的Xelement类。,C#语言的变量、数据类型,什么才是程序语言的核心?语法?函数库?机器语言时代寄存器、内存地址、位长汇编语言时代助记符、变量间没有截然的界限中级语言时代里程碑、完全引入变量和变量类型高级语言时代变量概念的新发展,结构体(记录)面向对象时代面向类、Java、.Net传统变量类型被彻底放弃,所有的变量类型都被理解为类,所有的变量都成为对象,程序语言真正的
8、核心变量!,C#语言的变量、数据类型,变量编程的需要 应用程序在运行过程中需要将一些数据信息保存在内存中,而我们在编写程序时不可能直接使用地址的方式来标识内存;因此就要使用变量。,C#语言的变量、数据类型,变量什么是变量?简单的说,变量是用来代表某内存空间的一个标识,可以利用变量名来将数据保存到与之对应的内存中;反之,也可以通过变量名将与之对应的内存中的数据取出。,如何定义变量和使用变量呢?这要结合数据类型来使用,C#语言的变量、数据类型,C#语言的数据类型为什么需要数据类型?应用程序总是需要处理和保存数据,而现实世界中的数据类型多种多样,比如:人的名字;人的年龄等等。所以应该让计算机知道需要
9、处理什么样的数据、采用哪种方式进行处理以及按什么格式保存数据。C#语言预定义了很多种数据类型:整数类型、实数类型、数组、类等。,C#语言的变量、数据类型,C#语言的变量、数据类型,C#语言的变量、数据类型,C#语言的变量、数据类型,C#语言的变量、数据类型,如何使用整数类型int来定义一个变量?数据类型 变量名int age;这就定义了一个具有特定数据类型(int)的变量(age)age=90;,C#语言的变量、数据类型,如何使用整数类型int来定义一个变量?int age;age=90;int sum;sum=0;sum=sum+age;这是定义和使用一个值类型变量的基本方法。注意:一个变量
10、必须先定义后使用,并且一定具有某种类型,只能给变量附上相应类型的数据。C#是强类型语言。,C#语言的变量、数据类型,变量的命名规则1)变量名必须使用英文字母,数字和下划线,并且必须以字母或下划线开头。2)变量名区分大小写。比如:int age;int Age;age和Age是两个不同的变量。3)变量名不能与C#的关键字重名。,C#语言的变量、数据类型,深入C#语言的数据类型inti;i=1;strings;s=i.ToString();,C#语言的变量、数据类型,深入C#语言的数据类型通用类型系统C#的基本数据类型都以平台无关的方式来定义。C#的预定义类型并没有内置于语言中,而是内置于.NET
11、 Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型。例如,在C#中声明一个int变量时,声明的实际上是CTS中System.Int32的一个实例。这具有重要的意义:(1)确保IL上的强制类型安全;(2)实现了不同.NET语言的互操作性;(3)所有的数据类型都是对象。它们可以有方法,属性。,C#语言的变量、数据类型,数据类型的转换1.值类型间的转换2.装箱和拆箱:在值类型和引用类型间转换,C#语言的变量、数据类型,数据类型的转换1.值类型间的转换 隐示转换:如果将一个值从范围较窄的数据类型转换为范围较宽的数据类型,可以使用隐含转换。int
12、 num1=1000;double num2;num2=num1;显示转换:在不能使用隐士转换时就必须使用强制转换。在前面使用(目标数据类型)num1=(int)num2;,C#语言的变量、数据类型,数据类型的转换2.装箱和拆箱:在值类型和引用类型间转换int myInt=12;object obj=myInt;/boxingint myInt2=(int)obj;/unboxing,C#语言的变量、数据类型,值类型用法示例,static void Main(string args)bool flag=true;short a=19;int i=(int)3.0;float f=3.14F;s
13、tring str=Tom;Console.WriteLine(布尔值=+flag);Console.WriteLine(短整型值=+a);Console.WriteLine(整型值=+i);Console.WriteLine(浮点值=+f);Console.WriteLine(字符串值=+str);,int i=3.0;float f=3.14;double f=3.14;float f=(float)3.14;,C#语言的变量、数据类型,用法示例bool型,基本用法:bool b1=true;/不是Truebool b2=(x=1 示例:if(b2)else,int x=0,y;if(x)
14、y=0;else y=1;,思考结果如何,C#语言的变量、数据类型,注意,int x=0;if(x)可用 if(x!=0)进行显式比较或者用转换函数if(System.Convert.ToBoolean(x)/非0为true,无法将类型int隐式转换为bool,C#语言的变量、数据类型,值类型用法示例,char ch=A;char ch=101;/用8进制数表示ASCII字符,最多3位char ch=x41;/用2位16进制数表示ASCII字符char ch=x0041;/用低2位16进制数表示ASCII字符char ch=u0041;/Unicode字码,必须4位16进制数char MyCh
15、ar=65;/:integral type cannot fit in charchar MyChar=(char)65;/:Cast from integral typeint a=MyChar;/:implicit conversion to int,C#语言的变量、数据类型,C#语言的变量、数据类型,程序练习,using System;public class BoolTest public static void Main()Console.Write(Enter a character:);char c=Console.Read();/读入一个字符(返回值为int型)if()if()
16、Console.WriteLine(小写字母.);else Console.WriteLine(大写字母.);else Console.WriteLine(不是字母.);,C#语言的变量、数据类型,参考答案,using System;public class BoolTest public static void Main()Console.Write(Enter a character:);char c=(char)Console.Read();/读入一个字符(返回值为int型)if(char.IsLetter(c)if(char.IsLower(c)Console.WriteLine(小写
17、字母.);else Console.WriteLine(大写字母.);else Console.WriteLine(不是字母.);,C#语言的变量、数据类型,用法示例string型,string a=hello;string b=h;b=b+ello;/+是连接字符串,b=hellostring c=good+morning;Console.WriteLine(a!=b);/输出结果是False Console.WriteLine(object)a=b);/结果是False(类型不一致了),string s1=tom;string s2=jerry;Console.WriteLine(s1 s
18、2);,思考结果如何,比较两个字符串的最简单方法是使用=和!=运算符,执行区分大小写的比较。,C#语言的变量、数据类型,C#语言的变量、数据类型,用法示例string型,可以用索引运算符 访问字符串中的各个字符:char x=test2;/x=s;序号从0开始string s=u0041;char c1=s0,c2=s2;/则c1,c2=?,索引示例:string s=Printing backwards;/汉字能行吗?for(int i=0;i s.Length;i+)System.Console.Write(ss.Length-i-1);,C#语言的变量、数据类型,用法示例string型,
19、字符串中可以包含转义符,如:string hello=HellonWorld!;练习:c:myFoldermyFile.txt,string s1=c:myFoldermyFile.txt;/string s2=c:myFoldermyFile.txt;/不易阅读改进:C#字符串可以开头,并用双引号引起来:string s3=c:myFoldermyFile.txt;,C#语言的变量、数据类型,用法示例string型,注意:若要在一个用 引起来的字符串中包括一个双引号,则应使用两个双引号:例如:You!cried the captain.则用:You!cried the captain.,C#
20、语言的变量、数据类型,用法示例string型,字符串转换为其它型的方法,.Parse()方法 很重要Sytem.Convert.()方法,C#语言的变量、数据类型,用法示例string型.Parse()方法,int.Parse(string)long.Parse(string)float.Parse(string)double.Parse(string)bool.Parse(string)char.Parse(string)DateTime.Parse(string),string s1=123;int a=int.Parse(s1);string s2=123.45;double f=dou
21、ble.Parse(s2);string s3=2008/03/15;DateTime dt=DateTime.Parse(s3);Console.WriteLine(dt.Year);,C#语言的变量、数据类型,Sytem.Convert.()方法,C#语言的变量、数据类型,示例,string s1=123;int a=System.Convert.ToInt32(s1);/a=123string s2=123.45;double f=Convert.ToDouble(s2);/f=123.45string s=true;/不区分大小写bool b=Convert.ToBoolean(s);
22、string s=2008/03/15;/一种日期格式DateTime dt=Convert.ToDateTime(s);Console.WriteLine(dt.Year);,C#语言的变量、数据类型,补充,将数字转换为字符串时,需要使用ToString()方法,或者使用Convert.ToString()方法。例如:int i=123;textBox1.Text=Convert.ToString(i);textBox2.Text=i.ToString();,C#语言的表达式和控制语句,C#表达式、运算符表达式是运算符和操作数组成的序列。1).附值运算符:=;*=;+=;-=;/=;%=2)
23、.算术运算符:+,-,*,/,%3).关系运算符:,=,!=,=,is 4).逻辑运算符:逻辑与,C#语言的变量、数据类型,用法示例/、%运算,Console.WriteLine(5/2);Console.WriteLine(5.0/2);Console.WriteLine(5/2.0);Console.WriteLine(5.0/2.0);Console.WriteLine(5%2);Console.WriteLine(5.1%2);Console.WriteLine(-5%2);,练习:Console.WriteLine(-1.5%2);Console.WriteLine(-2.5%2);
24、,C#语言的变量、数据类型,用法示例逻辑运算示例,int i=0;if(i0,int i=0;if(i0,&、|仅在必要时才计算第二个操作数,&、|两个操作数都要计算,C#语言的表达式和控制语句,C#流程控制语句选择控制:if else、switch case循环控制:while、do while、for、foreach跳转语句:break、continue异常处理:try、catch、finally,C#语言的表达式和控制语句,C#流程控制语句if选择语句,2)双向:if(布尔表达式)/表达式结果为真时运行else/表达式结果为假时运行,1)单向:if(布尔表达式)/表达式结果为真时运行,C
25、#语言的表达式和控制语句,C#流程控制语句if、switch选择语句,3)多分支:if(布尔表达式1)/表达式1结果为真时运行else if(布尔表达式2)/表达式2结果为真时运行else if(布尔表达式N)/表达式N结果为真时运行else/以上表达式都为假时执行,switch(控制表达式)case 常量1:/需要执行的程序块 break;case常量2:/需要执行的程序块 break;default:/默认执行的程序块 break;,C#语言的表达式和控制语句,C#流程控制语句for循环语句,for(初始值表达式;循环条件表达式;循环后的操作表达式)/执行语句块;,例子:计算1到100个自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计
链接地址:https://www.31ppt.com/p-5896180.html