C#入门教学经典教程.ppt
《C#入门教学经典教程.ppt》由会员分享,可在线阅读,更多相关《C#入门教学经典教程.ppt(432页珍藏版)》请在三一办公上搜索。
1、C#,C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。,C#使得C+程序员可以高效的开发程序,且因可调用由 C/C+编写的本机原生函数,因此绝不损失C/C+原有的强
2、大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。,第1章 C#与NET平台介绍本章目标,了解.NET Framework 的结构理解.NET Framework 的基本概念CLRJITCTSMSIL了解.NET Framework 命名空间了解C#程序的基本结构,1 C#语言的由来,在过去的二十年里,C和C+已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的开发效率。与VB等语言相比,同等级别的C/C+应用程序往往需要更长时间来开发。由于C/C+语言的复杂性,许多程序员都试图寻找一种新的语
3、言,希望能在功能与效率之间找到一个更为理想的权衡点。VB以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C+程序员所需要的。这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),所提供的功能难以令人满意。这些语言无法方便地同早先的系统交互,也无法很好地和当前的网络编程相结合。,对于C/C+用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,一些C/C+开发人员还需要在必要的时候进行一些底层的编程。C#(C sharp)是对这一问题的解决方案。C#是一种新的、面向对象的编程语
4、言。它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。,C#语言的特点:C#语言是Microsoft发布的一种全新的编程语言,是其.Net战略的一枚重要棋子。C#语言是面向对象的、现代的编程语言,用C#编写的应用程序可以充分利用.Net的框架体系带来的优点.既可以用来编写基于通用网络协议的Internet服务软件,也可以编写各种数据库、网络服务应用程序和Windows窗口界面程序。C#继承了C/C+的优点和灵活性,能够充分利用OS系统的底层功能,同时又具备了完全的面向对象特性。可以让
5、初学者直接了解面向对象编程的各种概念,学习现代的编程思想和手段。,2.NET代码的编译语言特定的编译器和运行库,代码被执行,IL+元数据,CLR,IL 和 CLR 的使用Intermediate LanguageCommon Language Runtime,编译执行.NET 程序,Microsoft 中间语言,MSIL+元数据,机器代码,代码 被执行,CLR,MSIL,帮助语言实现互操作,IL 不是字节代码,但很接近字节代码。因此,执行应用程序时,IL 到机器码的转换速度非常快!,通过 CLR将 MSIL 转换为具体 CPU 的代码,CPU 无关的指令集,语言编译器,.NET 源代码,程序集
6、,client.exe,client.exe,clientlib.dll,client.exe,module,IL语言范例,IL_0000:nop IL_0001:call IL_0006:nop IL_0008:call IL_000d:nop IL_000e:ldnull IL_000f:ldftn IL_0015:newobj IL_001a:call IL_001f:nop IL_0020:newobj IL_0025:call IL_002a:nop IL_002b:newobj IL_0030:throw,通用语言运行时CLR,.NET的语言互操作性:不同语言编写的代码可互相调用C
7、#的平台移植性:框架JIT编译器(Just In Time,即时编译器),3.NET Framework 简介,.NET Framework类似于JVM.NET Framework 两个主要组件:通用语言运行时(CLR)统一的类库集.NET的类库:线程文件输入/输出(I/O)数据库支持XML 解析数据结构,.NET Framework 的体系结构,Visual Studio.NET,CLR通用语言运行时(CLR),Base Class Library:IO,Drawing,Threading,Data and XML,XML Webservices,Windows Forms,Web Form
8、s,通用语言规范(CLS),VB,C+,C#,JScript,操作系统,.Net Framework 类库(FCL),CLS和CTS,通用语言规范 CLS Common Language Specification规定所有.NET 语言都应遵循的规则生成可与其他语言互操作的应用程序通用类型系统(Common Type System,CTS)包含标准数据类型 包含准则集,CLS、CTS 和 MSIL 紧密配合以实现语言互操作性,命名空间就像在文件系统中一个文件夹容纳多个文件一样,可以看作某些类的一个容器。通过把类放入命名空间可以把相关的类组织起来,并且可以避免命名冲突。命名空间既用作程序的“内部
9、”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)使用命名空间:using类似#include,4 命名空间,1.Hclass A,2.Hclass A,3.cpp#include“1.h”#include“2.h”.,3.cppclass A class A,namespace a1class A,namespace a2class A,3.csusing a1;using a2;a1.Aa2.A,常用命名空间,5 创建“Hello World”应用程序,单击“开始”“程序”“Microsoft Visual Studio.NET 2005”“Microsoft
10、 Visual Studio.NET 2005”此时将打开 VS.NET 2005 的起始页要创建 C#控制台应用程序,请从列表中选择“创建建”“项目”。此时将打开“新建项目”窗口选择“Visual C#项目”作为项目类型,选择“控制台应用程序”作为模板,C#模板,Console.WriteLine(Hello World);,输出,HelloWorld.csprojAssemblyInfo.csProgram.cs,“Hello World”应用程序文件,编译和执行 C#应用程序,要生成 C#项目,请从菜单中选择“生成”“生成解决方案”该过程将编译项目中包括的所有文件,编译结果显示在“输出”
11、窗口中 如果结果显示“生成:1 成功或最新,0失败,0被跳过”,则说明已经成功生成,然后即可交付该应用程序,要运行刚才生成的应用程序,请从菜单中选择“调试”“开始执行(不调试)”输出结果显示在 VS.NET 控制台窗口中,C#应用程序文件夹结构,Visual Studio.NET 2005 创建一个与项目同名的文件夹,此处为“HelloWorld”该文件夹包含项目文件“HelloWorld.csproj”和其他关联文件 每个新项目都创建了 bin、obj和Properties 三个文件夹。Bin和obj这两个文件夹下都有一个 Debug 子目录,其中包含可执行文件 HelloWorld.exe
12、 在“解决方案资源管理器”中启用“显示所有文件”选项,可查看“HelloWorld”项目的结构,/这是用 C#编写的一个简单的 HelloWorld 程序using System;namespace Notepadclass HelloWorldstatic void Main()Console.WriteLine(Hello World);,声明 HelloWorld 类,描述代码的注释,Hello World 程序,程序入口点,Main 的返回类型为 void,控制台类的 WriteLine()方法用于显示输出结果,导入 System 命名空间,声明命名空间 Notepad,将文件保存为*
13、.cs,说明:1.程序一般包括以下几部分:名称空间的引用:使用using关键字指明引用的名称空间。名称空间的声明:使用namespace关键字声明名称空间。类:使用class关键字声明类。Main方法:Main方法是C#程序的入口。2.类中包含了程序所要用到的数据和所要执行的方法的定义。每个类中可以有:(1)变量声明(2)构造函数(3)方法(4)属性(5)事件3.一个文件中可以有1个或者多个类。4.所有语句都以分号;结束。,C#语言基础,第2章,目标,在C#中定义变量和常量使用C#中的基本数据类型理解装箱和拆箱的概念使用C#中的运算符,选择结构和循环结构定义和使用数组,了解结构和枚举了解C#中
14、的预处理指令理解C#中常用的字符串处理方法,第一个 C#程序:HelloWorld,using System;class HelloWorld static void Main()Console.WriteLine(“Hello,World!”);,HelloWorld.cs,第一个 C#程序:HelloWorld,1:using System;,第 1 行:,using 关键字用来引用.NET框架类库中的资源通常在程序文件的开头使用如果程序中需要多种资源,可以使用多次usingSystem 命名空间System命名空间提供了构建应用程序所需的系统统能的访问,第一个 C#程序:HelloWor
15、ld,2:class HelloWorld3:.8:,第 2,3,8 行:,类在C#或其他面向对象语言中,需要编写类使用关键字class定义一个类,类的内容放在一对 中示例中定义了一个名为HelloWorld的类,第一个 C#程序:HelloWorld,4:static void Main()5:.7:,第 4,5,7 行:,Main 方法Main 方法是应用程序的入口点,编译器将由该处开始执行程序方法体也放在一对 中每个C#的应用程序都必须包含Main方法,4:static void Main()5:.7:,第 4,5,7 行:,Main方法 static表示Main方法是一个全局方法voi
16、d表示Main方法没有任何返回值,即返回值是空参数放在小括号中定义。此处括号内没有内容,表明Main方法没有任何参数,第一个 C#程序:HelloWorld,6:Console.WriteLine(“Hello,World!”);,第 6 行:,语句在C#中要执行的指令语句之间用;分隔,编译器通过分号来区分多个语句使用大括号 标识某个代码块的开始和结束,从而可以对语句进行组合。大括号必须成对匹配。,第一个 C#程序:HelloWorld,6:Console.WriteLine(“Hello,World!”);,第 6 行:,语句 HelloWorld程序的主要目的就是在屏幕上显示一条问候 Wr
17、iteLine方法用来将问候语写到标准输出设备上。Console代表标准输出设备-屏幕,它属于System命名空间 WriteLine方法是Console类的方法。访问类或对象的方法使用 点取符.来完成。字符串用双引号“”表示 字符串“Hello,World”是WriteLine方法的参数,表示屏幕输出 的内容,第一个 C#程序:HelloWorld,系统预定义类型,系统预定义类型,字面量,int:int iMax=int.MaxValue;int pVal=int.Parse(“100”);short i16=50;int i32=i16;i16=i32;错误i16=(short)i32;d
18、ecimaldecimal iRate=3.9834M;iRate=decimal.Round(iRate,2);/四舍五入iRate=decimal.Remainder(512.0M,51.0M);,boolbool bt=(bool)1;/错误charstring pattern=“123abcd?”;bool bt;bt=char.IsLetter(pattern,3);bt=char.IsNumber(pattern,3);bt=char.IsLower(pattern,3);bt=char.IsPunctuation(pattern,7);bt=char.IsLetterOrDigi
19、t(pattern,3);,single,doublefloat f=24567.66f;double d=124.45;If(Single.IsNaN(1/0)使用Parse转换数字字符串short shParse=Int16.Parse(100);int iParse=Int32.Parse(100);long shParse=Int64.Parse(100);decimal dParse=decimal.Parse(“99.99);float sParse=float.Parse(“99.99);double dParse=double.Parse(“99.99);,字符串,字符串直接量
20、string path;path=”C:note.txt”;path=“C:note.txt”;字符串操作索引字符串中的单个字符string str=“abcd”;char c=str0;字符串连接string s1=“My age=“;int myAge=28;string cat=s1+myAge;,字符串操作抽取和定位子串string poem=“In Xanadu did Kubla Khan”;string poemSeg=poem.Substring(10);poemSeg=poem.Substring(0,9);int index=poem.IndexOf(“I”);index=
21、poem.LastIndexOf(“n”);比较字符串bool isMatch;string title=Ancient Mariner;isMatch=(title=ANCIENT AMRINER);isMatch=(title.ToUpper()=ANCIENT MARINER);isMatch=title.Equals(Ancient Mariner);,String常用方法,C#中常用的字符串处理方法:Equals():比较两个字符串的值是否相等ToLower():将字符串转换成小写形式IndexOf():查找某个字符在字符串中的位置SubString():从字符串中截取子字符串Joi
22、n():连接字符串Split():分割字符串Trim():去掉字符串两边的空格,实例,将一文件名的扩展名改为.dat。例:1.txt改为1.dat,using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _011 class Program static void Main(string args)string filename=1.2.txt;int indexDot=filename.LastIndexOf(.);string extendName=dat;fil
23、ename=filename.Substring(0,indexDot+1);filename+=extendName;Console.WriteLine(filename);,String 常用方法应用1,已有如下代码,按要求增加功能:,static void Main(string args)string email;/电子邮件地址 Console.WriteLine(请输入你的邮箱:);email=Console.ReadLine();Console.WriteLine(你的邮箱是 0,email);,需实现的功能:1、输入 yes 时,程序循环执行2、兼容以下各种形式 yes(YES、
24、yes、YeS.)3、提取邮箱的用户名,using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _011 class Program static void Main(string args)while(1)string email;/电子邮件地址 Console.WriteLine(请输入你的邮箱:);email=Console.ReadLine();Console.WriteLine(你的邮箱是 0,email);Console.WriteLine(继续输入邮箱吗
25、?);string input=Console.ReadLine();if(input.ToUpper()=YES)continue;else break;,while(true),String 常用方法应用2,输入一个字符串,输出每个单词,重新用下划线连接输出,使用 Split()方法分割字符串使用 Join()方法连接字符串,Split()方法分割字符串,代码分析,splitStrings=inputString.Split();,/将分割后的字符串使用下划线连接在一起joinString=string.Join(_,splitStrings);,返回值为字符串数组,字符串变量名,参数:分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 入门 教学 经典 教程

链接地址:https://www.31ppt.com/p-5416937.html