资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,第1章 C# 简 介 1.1 什么是.NET Framework?.NET Framework是各种语言所编的程序的公共运行平台(CLR), 而且为各种语言提供了一个统一的类库,供各种语言编程时调用。 那么各种语言所编的程序是如何在 .NET Framework上运行的呢? 让我们先了解几个概念。,中间语言MSIL: 能够直接在 .NET Framework上运行的一种语言,其它语言必须被编译成MSIL,经过.NET Framework 的JIT即时解释,才可能在具体机器上运行。 托管(Managed)的程序: 各种语言的源程序被编译成中间语言IL的代码,然后交给.NET Framework,再由.NET Framework即时地(JIT)翻译成硬件机器代码,提交给操作系统,才能在特定的机器上运行。 从这个过程可以看出,各种语言的程序是托付给.NET Framework,最后由.NET Framework负责机器代码翻译和提交给操作系统,实现程序运行。以这种方式运行的程序叫做托管的程序。,托管的程序运行过程:,非托管(Managed)的程序: (例如C语言的)源程序被直接编译链接成硬件机器代码,由操作系统直接调用执行。 托管的程序的特点: 跨平台运行:由于各种语言的程序都被编译成中间语言,再交给.NET Framework即时解释运行,因此实现了各种语言与操作系统及机器硬件的隔离,各种语言的程序不用考虑是在哪种操作系统和机器上运行,一切交给中间语言和.NET Framework处理,实现了跨平台运行。 方便各种语言交互调用: .NET Framework提供了统一的类库供程序员调用,按照统一的编程模式可以很方便的实现各种语言的交互作用。减轻了程序员的学习负担。,1.2 什么是C#? 1.2.1 C#概述 C#是Visual Studio.NET中包含的一种全新的开发语言,是专门开发运行在.NET Framework 上的托管程序的一种面向对象的程序设计语言。 起源与基本特点: 它从C/C+语言发展而来,具有与C/C+语言相似的语法,继承和发扬了C/C+语言的优点。同时,由于是Microsoft公司的产品,它又同Visual Basic一样简单,在创建图形用户界面和事件驱动的应用程序方面的容易程度可以媲美Visual Basic。对于Web开发而言,C#又像Java/C+语言一样,具有强大的功能和灵活性,使用起来更加方便和直观 。,C#与Java比较 实际上,C#与Java的主要区别不是在语言本身,而是所执行的平台。Java程序需要一个运行环境JRE(Java Runtime Environment)来执行代码,但JRE只限于在Java语言中使用。C#语言也需要一个运行环境CLR(Common Language Runtime),但是CLR是提供了对多种语言的支持的公共语言运行平台。Java源代码可以被编译成字节代码的一种中间状态,然后由已提供的虚拟机来执行这些代码。C#代码也被编译成一种中间代码,称为中间语言(MSIL),由CLR来负责运行。,1.2.2 C#的主要功能 设计Windows应用程序。 自定义Windows控制库。 设计控制台应用程序。 设计智能设备应用程序。 设计ASP.NET Web应用程序。 设计ASP.NET Web服务。 设计ASP.NET移动Web应用程序。 自定义Web控件库。,1.2.3 C#的主要特点 (1)简洁的语法 (2)卓越的面向对象设计 (3)与Web的紧密结合 (4)完全的安全性和错误处理 (5)版本处理技术 (6)灵活性和兼容性 (7)商业过程和软件实现的更好对应,1.3 C#程序基本结构 1.3.1 控制台程序 using System; namespace Ex1_1 class Programstatic void Main(string args)Console.WriteLine(“您好?,欢迎学习C#!“);Console.ReadKey(); C#程序由命名空间,类,主程序和using语句组成。可以包括多个可以嵌套的类和命名空间。,using语句,命名空间,类,Main函数,比较完整的C#程序: using System; namespace YourNamespace class YourClass struct YourStruct interface IYourInterface delegate int YourDelegate(); enum YourEnum namespace YourNestedNamespace class YourClass class YourMainClass static void Main(string args) /Your program starts here. C#的变量和函数必须在类内定义。,1.4 命名空间 试想在一个教室上课的两个班级,都有一个叫李刚的同学,长相等特征完全相同,老师在点名时又如何区分呢? 如果不分班,两个叫李刚的同学都在一个大型班级中,长相等特征完全相同,老师在点名时如何区分呢? .NET Framework中有大量的类型定义,如何将它们有序地管理起来? 在大型程序设计中,往往由多人组成的团队合作完成,如何保证每个人所做的类型定义整和在一起时不发生冲突? C#利用命名空间使得类型名称得到有序管理,避免了发生冲突。,所有类型都是定义在确定的命名空间中,只要命名空间的名称不同,即使变量类型名称相同,也不会发生冲突。就像在李刚的前面冠以班级,就可以区别两个班的李刚了,名称前要冠以命名空间。 例如: Console.ReadKey()函数是定义在命名空间System上的,完整的调用语法是:System .Console.ReadKey(); 我们在使用Console.ReadKey()函数时,总是要在其前面冠以System ,比较麻烦,省事的方法是在程序顶部使用using语句。 例如: using System,这样在程序中凡是用到System命名空间上的名称时,就不再需要冠以了System 。这就像教师在点名时,事现声明现在是对那个班级点名。,命名空间的定义:namespace 名称 内容 命名空间只能定义类型和嵌套的命名空间。不能直接定义函数和变量,它们必须定义在类内。 例如: namespace Ex1_1 class Programstatic void Main(string args)Console.WriteLine(“您好?,欢迎学习C#!“);Console.ReadKey(); ,命名空间是组织程序代码的一种方式,我们应该习惯在命名空间中编写程序。 命名空间的使用语法:命名空间名称.内容名称 例如:System.Math访问System命名空间上的Math类。 .NET Framework定义了大量命名空间,提供了功能强大的类库,方便大家的程序设计。 我们可以定义自己的命名空间。 命名空间可以嵌套。 namespace 名称 namespace 内层命名空间名称 内容,使用using语句可以避免在名称前必须冠以命名空间的不便。 using语句语法:using 命名空间名称; 例如: using System; System是命名空间名称,当程序引用其上的类型时,就可以直接用了,不再需要冠以System了。 using System; namespace Ex1_1 class Programstatic void Main(string args)Console.WriteLine(“您好?,欢迎学习C#!“);Console.ReadKey(); 不能在类内定义命名空间。,using语句的另一个用法是给命名空间或起别名。 例如:using Project = PC.MyCompany.Project; 原名比较长,用起来不方便,起一个比较短的别名,方便使用。 原名必须是完整的限定类型。 using Syst = System; / using alias directive using SC = System.Console; / using alias directive namespace MyNamespace class SomeClass static void Main() /Alias for namespaceSyst.Console.WriteLine (“Using the namespace alias.“);System.Console.WriteLine(“Using fully qualified name.“);SC.WriteLine (“Using the type alias“); / Alias for class ,1.5 初步认识类 C#程序是现代的面向对象程序设计语言,是以类为基础的。 C#程序设计的大部分工作量是在类的设计上。 最简单的类定义语法如下:class 类名字段成员;函数成员; 例如:class Programstatic void Main(string args)Console.WriteLine(“您好?,欢迎学习C#!“);Console.ReadKey();,C#的类由主要函数和字段等组成。 在C#中,所有函数必须在类内定义,因此函数又叫方法。 变量必须在类内定义或在方法内定义。 在类内定义的变量叫做域(Field)。 在方法内定义的变量叫做局部变量。 在方法内不能嵌套定义类。,1.6 Main函数 C#程序的运行起点,即程序入口是Main函数。 由于函数和变量必须定义在类内, Main函数也必须定义在类内,包含Main函数的类叫做主类。 由于函数必须在类内定义,因此C#中的函数称为方法,以后我们就用这个名称了。 using System; namespace Ex1_1 class Program /主类static void Main(string args) /程序入口Console.WriteLine(“您好?,欢迎学习C#!“);Console.ReadKey(); 主类中的变量和方法最好要定义成静态的。,完整的C# 程序中只能有一个入口点。即只能有一个Main方法,程序次处开始。 Main在类或结构内声明。 Main必须是静态的,且不应该是 public。 Main方法有四种形式:static void Main()static void Main(string args)static int Main()static int Main(string args) Main的返回类型有两种: void 或 int。 当返回类型是int时,必须用return语句返回一个int型值。例如:static int Main() return 1;,static void Main(string args)static int Main(string args) Main方法的参数叫做命令行参数。 程序的运行有两种方法:Windows窗口双击鼠标,启动程序;在命令行窗口用键盘输入程序名。 用在命令行启动程序时,还可以输入一系列参数(即命令行参数),这些参数可以用来传递程序启动的一些信息。例如: static void Main( string args ) Console.WriteLine(“The command refence is:“);for(i=0; iargs.Length; i+) Console.Write(argsi); Console.WriteLine();Console.ReadKey(); 以两种方式运行程序,观察。(可单行运行),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号