第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在
3、Borland一直郁郁不得志。 当清楚Anders Hejlsberg的想法后,比尔盖茨答应给他一个宽松的环境,既领导Visual J+小组。,C#语言概述,C#语言的产生背景 然而,好景不长 SUN公司认为微软破坏了java的跨平台性,很快微软就会利用它的VJ+将java开发人员拉拢到它的周围,而它的VJ+以及WFC的很多特性明显是为了Windows平台设计。SUN中止了对微软的java授权。此后微软便选择Anders Hejlsberg担任C#的首席设计师。 Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手做出了Turbo Pascal,也是
4、Delphi, J,C#和.NET的主要作者。,.Net Framework命名空间,命名空间的功能 命名空间用于组织.NET Framework提供的几千个类。 使用命名空间可以解决类名冲突问题。,.Net Framework命名空间,命名空间的使用 利用using语句使用命名空间,如 “using System;” 表示导入System命名空间。 导入命名空间后,使用其包含的类时可省略命名空间。 例如,若没有使用“using System.Net.Mail”语句, 则定义“MailMessage MyMail”这个语句就会出现编译错误,此时就必须用 System.Net.Mail.Mail
5、Message MyMail代替。,.Net Framework命名空间,ASP.Net常用命名空间 System:提供基本类,如提供字符串操作的String类。 System.Configuration:提供处理配置文件中数据的类,如能获取web.config文件中数据库连接字符串的ConnectionStringSettings类。 System.Data:提供对ADO.NET类的访问,如提供数据缓存的DataSet类。 System.Ling:提供使用LINQ进行查询的类和接口,如包含标准查询运算符的Queryable类。,.Net Framework命名空间,ASP.Net常用命名空间
6、 System.Web:提供使浏览器与服务器相互通信的类和接口,如用于读取客户端信息的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
7、窗体页上创建Web服务器控件的类,如按钮Button控件类。 System.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 =
10、90; int sum; sum = 0; sum = sum + age; 这是定义和使用一个值类型变量的基本方法。 注意: 一个变量必须先定义后使用,并且一定具有某种类型,只能给变量附上相应类型的数据。C#是强类型语言。,C#语言的变量、数据类型,变量的命名规则 1)变量名必须使用英文字母,数字和下划线,并且必须以字母或下划线开头。 2)变量名区分大小写。比如:int age;int Age;age和Age是两个不同的变量。 3)变量名不能与C#的关键字重名。,C#语言的变量、数据类型,深入C#语言的数据类型 int i; i = 1; string s; s = i.ToString()
11、;,C#语言的变量、数据类型,深入C#语言的数据类型通用类型系统 C#的基本数据类型都以平台无关的方式来定义。C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型。 例如,在C#中声明一个int变量时,声明的实际上是CTS中System.Int32的一个实例。这具有重要的意义: (1)确保IL上的强制类型安全; (2)实现了不同.NET语言的互操作性; (3)所有的数据类型都是对象。它们可以有方法,属性。,C#语言的变量、数据类型,数据类型的转换 1.值类型间的转换 2. 装箱和拆箱:
12、在值类型和引用类型间转换,C#语言的变量、数据类型,数据类型的转换 1.值类型间的转换 隐示转换:如果将一个值从范围较窄的数据类型转换为范围较宽的数据类型,可以使用隐含转换。 int num1 = 1000; double num2; num2 = num1; 显示转换:在不能使用隐士转换时就必须使用强制转换。在前面使用(目标数据类型) num1 = (int)num2;,C#语言的变量、数据类型,数据类型的转换 2. 装箱和拆箱:在值类型和引用类型间转换 int myInt = 12; object obj = myInt; /boxing int myInt2 = (int)obj; /u
13、nboxing,C#语言的变量、数据类型,值类型用法示例,static void Main(string args) bool flag = true; short a = 19; int i = (int)3.0; float f = 3.14F; string str = “Tom“; Console.WriteLine (“布尔值 = “ + flag ); Console.WriteLine (“短整型值 = “ + a ); Console.WriteLine (“整型值 = “ + i ); Console.WriteLine (“浮点值 = “ + f); Console.Wri
14、teLine (“字符串值 = “ + str ); ,int i=3.0; float f=3.14; double f=3.14; float f=(float)3.14; ,C#语言的变量、数据类型,用法示例bool型,基本用法: bool b1 = true; /不是True bool b2 = ( x=1 示例: if (b2) else ,int x = 0, y; if (x) y=0; else y=1; ,思考 结果如何,C#语言的变量、数据类型,注意,int x = 0; if (x) 可用 if ( x!= 0 ) 进行显式比较 或者用转换函数 if (System.Co
15、nvert.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 MyChar = 65; /: integral type cannot fit in char char MyChar = (char)
16、65; /: Cast from integral type int 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 ( ) Console.WriteLine(“小写字母.“); else Con
17、sole.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(“小写字母.“
18、); else Console.WriteLine(“大写字母.“); else Console.WriteLine(“不是字母.“); ,C#语言的变量、数据类型,用法示例string型,string a = “hello“; string b = “h“; b = b + “ello“; /+是连接字符串, b= “hello“ string c = “good “ + “morning“; Console.WriteLine( a != b ); / 输出结果是False Console.WriteLine( (object)a = b ); /结果是False(类型不一致了),stri
19、ng s1=“tom“; string s2=“jerry“; Console.WriteLine( s1 s2 );,思考 结果如何,比较两个字符串的最简单方法是使用 = 和 != 运算符,执行区分大小写的比较。,C#语言的变量、数据类型,C#语言的变量、数据类型,用法示例string型,可以用索引运算符 访问字符串中的各个字符: char x = “test“2; / x = s; 序号从0开始 string s = “u0041“; char c1=s0, c2=s2; / 则c1,c2=?,索引示例: string s=“Printing backwards“; /汉字能行吗? for
20、 (int i = 0; i s.Length; i+) System.Console.Write( ss.Length - i - 1 ); ,C#语言的变量、数据类型,用法示例string型,字符串中可以包含转义符,如: string hello = “HellonWorld!“; 练习: c:myFoldermyFile.txt,string s1 = “c:myFoldermyFile.txt“; / string s2 = “c:myFoldermyFile.txt“; / 不易阅读 改进: C#字符串可以开头,并用双引号引起来: string s3 = “c:myFoldermyF
21、ile.txt“;,C#语言的变量、数据类型,用法示例string型,注意: 若要在一个用 引起来的字符串中包括一个双引号,则应使用两个双引号: 例如: “You!“ cried the captain. 则用: “You!“ cried the captain.“,C#语言的变量、数据类型,用法示例string型,字符串转换为其它型的方法,.Parse() 方法 很重要 Sytem.Convert.() 方法,C#语言的变量、数据类型,用法示例string型.Parse() 方法,int.Parse(string) long.Parse(string) float.Parse(string)
22、 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=double.Parse(s2); string s3 = “2008/03/15“; DateTime dt = DateTime.Parse(s3); Console.WriteLine(dt.Year);,C#语言的变量、数据类型,Sytem.Convert.() 方法,C#语言的变量、数据
23、类型,示例,string s1=“123“; int a=System.Convert.ToInt32(s1); /a=123 string s2=“123.45“; double f=Convert.ToDouble(s2); /f=123.45 string s=“true“; / 不区分大小写 bool b=Convert.ToBoolean(s); string s=“2008/03/15“; /一种日期格式 DateTime dt=Convert.ToDateTime(s); Console.WriteLine(dt.Year);,C#语言的变量、数据类型,补充,将数字转换为字符串时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计
链接地址:https://www.31doc.com/p-3423400.html