收藏 分享(赏)

C#基本语法介绍(零基础!全面哦).ppt

上传人:HR专家 文档编号:5371151 上传时间:2019-02-24 格式:PPT 页数:87 大小:1.92MB
下载 相关 举报
C#基本语法介绍(零基础!全面哦).ppt_第1页
第1页 / 共87页
C#基本语法介绍(零基础!全面哦).ppt_第2页
第2页 / 共87页
C#基本语法介绍(零基础!全面哦).ppt_第3页
第3页 / 共87页
C#基本语法介绍(零基础!全面哦).ppt_第4页
第4页 / 共87页
C#基本语法介绍(零基础!全面哦).ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、系统开发实训-C#,参考教材,作 者:周红安 等编著 出 版 社: 电子工业出版社 出版时间: 2009-1-1,2. 出版时间:2009-01,出版社:清华大学出版社 出版日期:2009-3-1,课程地位,STB,SQL Server,XML,PSPM,ASP.NET,Oracle,OOAD,Computer Base,HTML/JavaScript,OOP/Java,C,SQL Base,JSP/Servlet,EJB/WebService,WinForms,Struts/JSF,Testing/SQA,Linux,C#,第一讲 基本语法介绍,第一章 C# 2008概述,.NET Fram

2、ework是Microsoft为开发应用程序创建的一个富有革命性平台。同时C# 2008语言可以在该平台上实现大多数开发人员需要的功能,而且C# 2008还具有大多数开发人员所需要的特性。,MSDN Library 使用,MSDN是微软的文档库,提供了大量的技术文档。作为一个合格的开发人员,应该学会使用产品文档。要熟悉MSDN,关键是要熟悉下面的几个面板。 目录面板:可以让开发人员快速地对MSDN有一个大致的了解,起导航的作用。 索引面板:其为开发人员提供了快速检索MSDN的功能,在“查找”文本框中输入感兴趣的内容,按Enter键,MSDN将自动转入最匹配的技术文档供开发人员阅读。 搜索面板:

3、其是MSDN的一种搜索功能,可以提供对本地帮助、MSDN Online、Codezone社区等许多文档库的详细搜索,其使用示意图如图所示。,/这是用 C# 编写的一个简单的 HelloWorld 程序 using System; namespace Notepad class HelloWorldpublic static void Main()Console.WriteLine(“Hello World“); ,声明 HelloWorld 类,描述代码的注释,Hello World 程序,程序入口点, Main 的返回类型为 void,控制台类的 WriteLine() 方法用于显示输出结果

4、,导入 System 命名空间,声明命名空间 Notepad,将文件保存为 HelloWorld.cs,控制台程序,using System; using System.Collections.Generic; using System.Text; / Using表示程序引用的库,上面的三个为控制台应用程序默认引用的库 namespace FirstConsoleApplication /程序将以新建项目名称自动创建一个命名空间,即namespace, class Program1/该处的class是类的意思,是自动创建这个program类。static void Main(string ar

5、gs)/Main()函数是程序的入口Console.WriteLine(“hello C# 2008 !“); /输出hello C# 2008 !Console.ReadLine(); ,简单Windows程序,第2章 C# 中面向过程基本元素,应用程序处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、实数、字符、布尔型等形式)。不同的数据之间往往还存在某种组织,构成了所谓的数据结构。,2.1 基本语法格式,2.1.1 语法概述,C# 2008中使用的标点符号分号“;”:指明一条代码语句的结束。 冒号“:” 花括号 方括号 圆括号( ),2.1.2 C# 2008中的注释,单行注释

6、,/该行“/”之后的文本都会被编译器认为是注释,注释自动在行尾结束,其只能用于单行注释。/*这是注释*/:多行注释用“/*”字符串开始,以“*/”字符串结束。,2.2 常量和变量,C# 2008是强类型语言,所以常量和变量都必须先声明类型。当声明了类型后,计算机就会知道处理什么样的数据,以及采用哪种格式保存数据等。public const int x =1; Int j ; Double a; String c;,2.2.2 常量,attributes constant -modifiers const type constant-declarators;在上述声明中,常量修饰符constan

7、t modifiers可以是new、public、protected、internal、private。而type可以是sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string。public const int x =1;,2.2.3 变量,在程序运行的过程中,值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元,在该单元中存放变量的值。与常量不同,变量的值可以反复赋数值。 1声明变量 2赋值变量 3变量的类型,数值类型,namespace Ex_2_1 class

8、Programstatic void Main(string args)int a = 50; /定义a int b = 40; /定义b Console.WriteLine(a+b); /输出Console.ReadLine();/加上这行才能看到运行结果,否则一闪而过string i = “4“; /声明一个空的字符型变量istring j = “10“; /声明字符型变量jConsole.WriteLine(j); Console.WriteLine(i + j);Console.ReadLine(); ,namespace Ex_2_10 class Programstatic voi

9、d Main(string args)string sName = “hoan“;string sSex = “男“;int iAge = 23;Double dHeight = 1.72;Console.Write(“我叫:“);Console.WriteLine(sName);Console.Write(“性别:“);Console.WriteLine(sSex);Console.Write(“年龄:“);Console.WriteLine(iAge);Console.Write(“身高:“);Console.WriteLine(dHeight);Console.Read(); ,2.3

10、运算符、表达式及优先级,C# 2008提供了大量的运算符,按照其处理操作数的不同大致可以分为3类,即一元运算符、二元运算符和三元运算符。主要的运算符如表所示。,运算符和表达式,前置和后置自加/自减运算符,问题,计算结果: 1、 int i = 0;bool result = falseresult = (+i) + i = 2?true:false; result =,true,C# 运算符的优先级,using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Ex_

11、2_6 /程序的命名空间,也是项目名称,如Ex_2_6class Programstatic void Main(string args) Console.WriteLine(10 + 10);/这里的”+”号作为计算数值用Console.WriteLine(“10“ + “10“);/这里的”+”号作为字符串相加Console.ReadLine();/获取输入,控制台窗口停下来,看输出结果,/赋值运算符和赋值表达式int a = 4;a -= a += a * a;/Console.WriteLine(“the Value of a is 0“, a);Console.ReadLine();

12、/关系运算符int x = 10;int y = 0;if (x != 0 ,/位运算符x = 32;Console.WriteLine(x);y = x 2;Console.WriteLine(y);int z = x 2;Console.WriteLine(z);Console.ReadLine();,2.4 类型转换,在编写程序过程中,会经常遇到这种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量。例如,从int类型转换到long类型数据类型之间的转换等,由于数据类型有差异,在赋值时就需要进行数据类型的转换。在C# 2008中提供了如下的转换:隐式转换。显式转换。使用命令的显

13、示转换。,class Program /namespace Ex_2_4 static void Main(string args) double d = 100.5; int i; i = (int)d; Console.WriteLine(i); Console.ReadLine(); byte b = 5;/实现了隐式转换int x = b; Console.WriteLine(“the Value of x is 0“, x);Console.ReadLine();bool myBool = true;double myDouble = 99.00;string myString =

14、Convert.ToString(myBool) + Convert.ToString(myDouble);Console.WriteLine(“the Value of myString is 0“, myString);Console.ReadLine();,2.5 数组,数组是一种数据结构,其中包含一些可透过计算得到之索引来存取的变量。数组中所包含的变量,又称为数组的元素,都具有相同型别,而此型别就叫做数组的元素型别数组必须先定义,后使用。数组的定义采用以下方式: 其中Type可以是任意的类型,name是数组的名称。,数组可以通过两种方式进行初始化,第一种方式是完整的指定数组的内容;第二

15、种方式是指定数组的长度,并使用new关键字初始化所有的数组元素。 int intArray=1,2,3 /声明了一个一维数组并赋值 等价于: int intArray /声明了一个一维数 intArray=1,2,3; /对数组赋值 int3 intArray; /声明了一个一维数 intArray=new int3; /对数组初始化,namespace Ex_2_3 class Programstatic void Main(string args)int array = new int5; /定义一个一维数组,它有5个元素for (int i = 0; i array.Length; i+

16、)/循环计算i的值,最大长度是数组的长度array.Lengtharrayi = i + 10;Console.WriteLine(arrayi); /输出i的值Console.ReadLine(); /获取输入焦点,为了看运行结果,放在循环体之外 ,/定义一个二维数组int, intArray = new int2, 3;/为二维数组赋值并输出for (int i = 0; i intArray.GetLength(0); i+)for (int j = 0; j intArray.GetLength(1); j+)intArrayi, j = i + j;Console.WriteLine

17、(“Element(0,1) is 2“, i, j, intArrayi, j);Console.ReadLine();,C#中提供了Array.Clear()方法。 Array.Clear方法的定义如下: public static void Clear(Array array, int index, int length) 参数Array为要进行删除操作的数组,index为要清除的一系列的起始索引,length为要清除的元素数。代码演示了Array.Clear()的用法,实现数组的清空。,C#提供了用于排序的方法Array.Sort和Array.Reverse,Array.Sort方法用

18、于对一维数组对象中的元素进行排序,Array.Reverse方法用于反转一维数组对象中元素的顺序。Array.Sort方法的定义如下。 public static void Sort( Array array /要排序的一维数组 ) public staic void Sort( Array array, /要排序的一维数组 Int index, /排序范围的起始索引 Int length /排序范围内的元素数 ),ArrayList代表一个能根据需要动态增加大小的一维数组,同时其能包含任何托管类型的元素,而且不要求所有元素都是相同的类型。当需要建立一个对象数组模型却不知道对象数量时,它们会非

19、常有用。 ArrayList对象是较为复杂的数组。ArrayList类提供了多数System.Collections类都提供的功能,但这些功能在数组类中没提供。可以将ArrayList看作是扩充了功能的数组。但其不同于数组,其区别如下: 数组的容量是固定的,而ArrayList的容量可根据需要自动扩充。 ArrayList提供了添加、插入等功能,而数组却没有。 ArrayList只提供一维的形式,而数组可以是多维的。,Add ArrayList,namespace AddArrayList class Program static void Main(string args) ArrayLis

20、t myArrayList = new ArrayList(5); myArrayList.Add(“hello“);myArrayList.Add(“World!“);/输出myArrayList的容量Console.WriteLine(“Capacity is 0“,myArrayList.Capacity);/输出myArrayList中元素的个数Console.WriteLine(“Count is 0“,myArrayList.Count); /分别输出myArrayList中的两个元素Console.WriteLine(myArrayList0);Console.WriteLine

21、(myArrayList1);Console.ReadLine();,数组元素的查找,Array.LastIndexOf方法,用于查找数组中的元素。Array.IndexOf方法的定义如下: Array.IndexOf(Array,Object) Array.IndexOf(Array, Object ,Int32) Array.IndexOf(Array, Object ,Int32,Int32),数组元素的排序,C#提供了用于排序的方法Array.Sort和Array.Reverse,Array.Sort方法用于对一维数组对象中的元素进行排序,Array.Reverse方法用于反转一维数组

22、对象中元素的顺序。Array.Sort方法的定义如下。public static void Sort( Array array /要排序的一维数组 ) public staic void Sort( Array array, /要排序的一维数组 Int index, /排序范围的起始索引 Int length /排序范围内的元素数 ),动态数组类,ArrayList代表一个能根据需要动态增加大小的一维数组,同时其能包含任何托管类型的元素,而且不要求所有元素都是相同的类型。当需要建立一个对象数组模型却不知道对象数量时,它们会非常有用。,ArrayList的简单使用,ArrayList对象是较为复

23、杂的数组。ArrayList类提供了多数System.Collections类都提供的功能,但这些功能在数组类中没提供。可以将ArrayList看作是扩充了功能的数组。但其不同于数组,其区别如下: 数组的容量是固定的,而ArrayList的容量可根据需要自动扩充。 ArrayList提供了添加、插入等功能,而数组却没有。 ArrayList只提供一维的形式,而数组可以是多维的。,ArrayList元素的添加,C#中为ArrayList提供了元素添加的方法,其为ArrayList.Add()。ArrayList.Add方法的定义如下: public virtual int Add( Object

24、 value /添加的对象 ),ArrayList元素的插入,C#中为ArrayList提供了元素插入的方法ArrayList.Insert()。ArrayList.Insert方法的定义如下: public virtual void Insert ( Int index, /插入对象的位置 Object value /插入的对象 ),9.4.4 ArrayList元素的删除,C#中为ArrayList提供了元素删除的方法ArrayList.Clear()。ArrayList.Clear方法的定义如下: public virtual void Clear( ) 该方法是从调用ArrayList

25、对象中删除了所有元素。即Count属性被设为0,但其容量Capacity属性却不变。代码演示了向Array中删除元素的功能。,ArrayList元素的查找,同数组一样,ArrayList中也提供了查找其元素的方法,即ArrayList.IndexOf()方法、ArrayList.LastIndexOf()方法和ArrayLst.Contains()方法。 由于前两种方法同Array中同名方法的用法基本相同,所以就不一一介绍了,Contains()的定义如下: public virtual bool contains( Object item /将要查找的对象 ),ArrayList元素的遍历列

26、表,以使用同数组相同的方法对ArrayList进行遍历,即foreach 语句。代码演示了ArrayList元素的遍历列表。,ArrayList容量的缩减,C#语言提供了TrimToSize方法来缩减ArrayList容量,其定义如下: public virtual void TrimToSize( ) 该方法用来缩减ArrayList的容量,使它等于ArrayList中的元素数。如果ArrayList是只读或大小固定的,将抛出一个NotSupportedException异常,代码演示了ArrayList容量的缩减。,9.4.8 ArrayList向Array的转换,C#语言提供了两种方法,

27、使ArrayList转换为Array。分别为ArrayList.ToArray()和ArrayList.ToArray(Type)。其中,第一种方法的定义如下: public virtual object ToArray( ) 该方法是将ArrayList转换为一个object数组。如果想转换为固定类型的Array,就该采用第二种方法,但必须设置Type。其定义如下: public virtual Array ToArray( Type type /转化成Array的类型 ),队列,Queue类通常称为队列,它封装了一个先进先出的集合,队列用来储存已入队的先后顺序进行处理的对象。,9.6 Qu

28、eue简单介绍,在队列中,每个Queue对象都有一个容量,如果存储的元素达到了它的容量,这个容量还会自动地增加。Queue对象还具有一个增长系数,它表示了当Queue满时容量的增加值。这个系数可以在Queue的构造函数中设定,默认值为20。 Queue是一个比较简单的类型,其构造函数就有4种,下面我们逐一介绍其构造函数, 供读者参考: Queue()。 Queue(Icollection c)。 Queue(int capacity)。 Queue(int capacity,float growthFactor)。 其中第一种方法的定义如下: public Queue ( ),Queue类元素

29、的添加和输出,Queue类常用的属性如表所示。,堆栈类,Stack类通常称为堆栈,它封装了一个先进后出的集合,堆栈与类Queue相似,用来储存已入队的反向顺序进行处理的对象。,Stack简单介绍,在堆栈中,每个Stack对象都有一个容量,如果存储的元素达到了它的容量,这个容量还会自动地增加。Stack是一个比较简单的类型,其构造函数就有3种,下面我们逐一介绍其构造函数,供读者参考: Stack()。 Stack(ICollection c)。 Stack(int capacity)。,Stack类元素的添加和输出,Stack集合的常用属性如表所示。,哈希表,HashTable通常称为哈希表,它

30、表示键(key)/值(value)对的集合,这些键/值对根据键的哈稀代码进行组织。一个对象的哈稀代码可以通过使用IhashCodeProvider接口的实现来获得。,选择控制关键字:if、else、switch、case 循环控制关键字:while、do、for、foreach 跳转控制关键字:break、continue,第三章 程序的流程控制,语法:if ()else ,选择结构用于根据表达式的值执行语句,if else,语法: switch (选择变量) case 值1: break; case 值2: break;case 值3: break;.default : ,switchcas

31、e,switchcase 的其他特性,每个 case 分支必须有一个break语句 各个 case 标签不必连续,也不必按特定顺序排列 default 标签可位于 switchcase 结构中的任意位置 default 标签不是必选的,但使用 default 标签是一个良好的编程习惯 每两个 case 标签之间的语句数不限,循环结构,循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。 循环结构的类型 while 循环 do 循环 for 循环 foreach 循环,while 循环反复执行指定的语句,直到指定的条件为真 语法 :while (条件) / 语句 brea

32、k 语句可用于退出循环 continue 语句可用于跳过当前循环并开始下一循环,while 循环,dowhile 循环,dowhile 循环与 while 循环类似,二者区别在于 dowhile 循环中即使条件为假时也至少执行一次该循环体中的语句。 语法 : do / 语句 while (条件),for 循环,for 循环要求只有在对特定条件进行判断后才允许执行循环 这种循环用于将某个语句或语句块重复执行预定次数的情形 语法 : for (初始值; 条件; 增/减) /语句 ,foreach 循环,foreach 循环用于遍历整个集合或数组 语法:foreach (数据类型 元素(变量) in

33、 集合或者数组)/语句,If语句,namespace Ex_3_3 class Programstatic void Main(string args) /主函数,也是入口函数bool flag = true; if (flag = true) Console.WriteLine(“标志位为真“); /输出else Console.WriteLine(“标志位为假“); /输出Console.ReadLine(); ,switch,class Programstatic void Main(string args) string Choice = null; Console.Write(“请选

34、择:“); Choice = Console.ReadLine(); switch (Choice) case “a“: Console.WriteLine(“开始看书“); break; case “b“: Console.WriteLine(“开始看电影“); break; default: Console.WriteLine(“无效输入! “, Choice);/ break; Console.ReadLine(); ,While语句,Programstatic void Main(string args) int i = 1; while (i 5) /当i小于5的时候就执行13至16

35、行中的代码Console.WriteLine(“循环了0次“, i);i+; Console.ReadLine(); ,Do-while 语句,class Programstatic void Main(string args) int i = 1; do Console.WriteLine(“循环了0次“, i); i+; while (i 5); Console.ReadLine(); ,For语句,class Programstatic void Main(string args) for (int i = 1; i 10; i+) Console.WriteLine(“循环了0次“,

36、i); /输出循环次数int m = 4;int n = 6;Console.Write(n);Console.ReadLine(); ,Break语句,class Programstatic void Main(string args) for (int i = 1; i = 100; i+) if (i = 10) break; Console.WriteLine(i); Console.ReadLine(); ,Continue语句,class Programstatic void Main(string args) for (int i = 1; i = 10; i+) if (i 6

37、) continue; Console.WriteLine(i); Console.ReadLine(); ,求一元二次方程的解,namespace Ex_3_10 class Programstatic void Main(string args)String a; String b; String c; double x1; double x2;Console.WriteLine(“请输入a,b,c的值:“);a = Console.ReadLine();b = Console.ReadLine();c = Console.ReadLine();double a1 = double.Par

38、se(a);double b1 = double.Parse(b);double c1 = double.Parse(c);,if (b1 * b1 - 4 * a1 * c1 0)x1 = (-b1 - Math.Sqrt(b1 * b1 - 4 * a1 * c1) / (2 * a1);x2 = (-b1 + Math.Sqrt(b1 * b1 - 4 * a1 * c1) / (2 * a1);Console.WriteLine(“x1与X2分别等于:“ + x1+“和“ + x2);Console.Read();else if (b1 * b1 - 4 * a1 * c1 0)Console.WriteLine(“错误,无解“);Console.Read();elsex1 = x2 = -b1 / (2 * a1);Console.WriteLine(“两根相等,x1=x2=“ + x1);Console.Read(); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 英语学习

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报