C#基本语法ppt课件.ppt_第1页
C#基本语法ppt课件.ppt_第2页
C#基本语法ppt课件.ppt_第3页
C#基本语法ppt课件.ppt_第4页
C#基本语法ppt课件.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#基本语法,1,C#代码的外观和操作方式和C+、Java十分的相似,在C#编程的过程中,不需要花费太多的精力就可以编写出十分清晰的代码。,usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceHello_New_WorldclassProgramstaticvoidMain(stringargs)Console.WriteLine(HelloNewWorld我的第一个C#应用程序);Console.ReadKey();,C#的基本语法概况,2,C#的每条语句都用一个分号来结束;为了程序的可读性和易维护性,建议一行一语句,C#编译器自动过滤回车符之类的空白字符;C#是一个块结构的编程语言,代码块使用“”和“”来界定,代码块中可以包含任意条语句,也可以根本不包含语句。在VS2005中编写代码时,系统会根据代码块的层次进行自动缩进;C#代码严格区分大小写,这与其他许多编程语言是不同的,否则将会引起编译出错。例如将上述控制台程序中的输出语句“Console.writeLine(HelloNewWorld我的第一个C#应用程序)”更改为“ConSole.WriteLine(HelloNewWorld我的第一个C#应用程序)”,程序将不能正常编译和执行。,C#的基本语法概况,3,在C#中,可以使用两种方式来注释代码:单行注释和多行注释。单行注释使用“/”来标记注释,其后可以编写任何内容,但一次只能注释一行语句,使用多行注释时,C#以“/*”标记注释的起始位置,以“*/”标记注释结束。,usingSystem.Text;/引用System.Text命名空间/*这是一个简单的C#控制台应用程序程序开始*/namespaceHello_New_World,C#的基本语法概况,4,VS2005具有代码的突出显示功能,及代码的折叠和隐藏功能。在编写C#代码时,可以使用“#region”和“#endregion”关键字,来定义需要扩展和收缩的代码,,#region引用的命名空间usingSystem;usingSystem.Collections.Generic;usingSystem.Text;#endregion,C#的基本语法概况,5,控制台基本输入输出操作,Console.ReadLine()读取用户输入的一行数据,遇到回车结束,返回一个字符串Console.Read()读取用户输入的一行数据的第一个字符,返回该字符对应的ASCII码值,int类型Console.Write()向控制台输出字符串,不换行Console.WriteLine()向控制台输出一行字符串数据(换行),6,变量变量是计算机内存中的一块存储单元,可以将数据存放到变量中,需要的时候再从中取出进行查看或修改。变量的基本类型,变量和表达式,整型变量,7,浮点型变量,其他3种常用变量类型,变量和表达式,8,变量的命名规则和命名方法变量是计算机中占据一定内存单元的存储区域,通过指定变量的名称来使用和管理变量。从数据存储的角度来看,变量名相当于存储数据的变量所占据的那块内存单元的标识名。变量名的第一个字符必须是字母、下划线(_)或;其后的字符可以是字母、下划线、数字等;不能使用C#中的关键字作为变量名,如using、namespace等,因为这些关键字对于C#编译器而言有特定的含义;C#是区分大小写的,因而在命名变量时,一定要使用正确的大小写,因为在程序中使用它们时,即使只有一个字母的大小写出错,也会引起编译错误。对于简单的变量,建议使用camelCase命名方法,而对于比较高级的变量,则使用PascalCase命名方法。,productIdproductNameproductDiscontent,ProductIdProductNameProductDiscontent,camelCase,PascalCase,变量和表达式,9,识别下列标识符,Personyearly-costyearly_costintintmyclassChecking#thisFloat5day变量名最好使用具有实际意义的英文单词,能够“见名知意”,10,变量,staticvoidMain(stringargs)/声明布尔型、字符串型、整型、短整型和浮点型变量booltest=true;shortnum1=19;intnum2=14000;stringval=John;floatnum3=14.5f;/显示变量值Console.WriteLine(布尔值=+test);Console.WriteLine(短整型值=+num1);Console.WriteLine(整型值=+num2);Console.WriteLine(字符串值=+val);Console.WriteLine(浮点值=+num3);,变量中存储的值取决于该变量的类型,11,变量的作用域,ClassScopepublicstaticvoidMain()intx;x=10;if(x=10)inty=20;Console.WriteLine(“xandy:0,1”,x,y);y=100;Console.WriteLine(“xis“+x);,程序中的一个块就定义就定义了一个作用域,域内的变量对外部不可见。变量在进入其作用域时创建,在离开作用域时被释放。,12,常量常量又称为字面值,是一种在使用过程中值不发生改变的特殊变量。常量的声明方法和变量类似,只要在类型关键字前面加上const关键字并指定常量值即可。和变量一样,常量也包括多种类型:数值常量、字符常量等。注意:常量在程序中只能被赋值一次,否则编译器便会报告错误。常量具有以下显著特征:常量必须在声明时进行初始化,其指定值后便不能再进行修改;常量的值必须能够在编译时用于计算,因而,从一个变量中提取某个时刻的值并将其赋值给常量,这种做法是不允许的;常量是静态的,但不必在声明时使用static修饰符。在程序中使用常量有以下几个好处:常量使用易于理解的名称,来代替含义不明确的数字或字符串,使程序更易于阅读;常量使程序更易于修改。,constintpi3.1415926;,变量和表达式,13,常量,staticvoidMain(stringargs)/PI常量PIconstfloat_pi=3.14F;/由地球引力引起的加速度常量,单位为cm/s*sconstfloat_gravity=980;/钟摆的长度intlength=40;/钟摆的周期doubleperiod=0;/钟摆周期的计算公式period=2*_pi*Math.Sqrt(length/_gravity);Console.WriteLine(钟摆的周期为0秒,period);,声明常量,在表达式中使用常量,const关键字用于声明常量,14,字符串常量存储的是一组字符,例如一个用于连接数据库的字符常量:上述常量中便发生了转义字符的问题,应用程序在使用该字符串常量来连接数据库时,便会出现连接错误,原因是系统将字符串常量中的字符“”看作是转义字符来处理了。如果要解决前面连接数据库的字符串常量中的反斜杠字符识别问题,可使用两个反斜杠,即更改成如下所示:,“server=wfqtupwk_wjl;IntegratedSecurity=SSPI;database=电子商务系统”,“server=wfqtupwk_wjl;IntegratedSecurity=SSPI;database=电子商务系统”,变量和表达式,15,对象类型System.Object,所有其他对象的基类,所有的数据类型都直接或间接的从object类型继承Object类型的变量可接受任何类型的数值是实现装箱/拆箱的本源所在,16,usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceHelloWorldclassObjectAppintnumber=918;staticvoidMain(stringargs)objectobj=124;Console.WriteLine(obj);Console.WriteLine(obj.GetType();obj=newObjectApp();ObjectAppvalue;value=(ObjectApp)obj;Console.WriteLine(value.number);Console.WriteLine(obj.GetType();Console.Read();,可用object引用指向任何类型的对象,用相同的代码对不同类型的数据执行不同的操作,这就是单一继承体系的好处,GetType()可动态获得对象的真正类型,17,通过改写ToString来进行自定义输出,classTeacherpublicstringname;publicstringcourseName;publicoverridestringToString()returnstring.Format(Imateacher,mynameis0andIteach1,,this.courseName);,classStudentpublicstringname;publicintage;publicStudent(stringname,intage)=name;this.age=age;publicoverridestringToString()returnstring.Format(Iamastudent,mynameis0andIam1yearsold,name,age);,18,staticvoidMain(stringargs)Teachert=newTeacher();=BillGates;t.courseName=Objectsorientationprogramming;Students=newStudent(TomHanks,18);Console.WriteLine(t);Console.WriteLine(s);/等价于调用Console.WriteLine(s.ToString();Console.Read();,通过改写ToString方法,可以提供一致的形式来显示对象的信息,这里体现了面向对象编程的什么特性呢?,多态性!,19,隐式转换和强制转换,隐式(赋值和混合表达式中)自动算术表达式转换,低类型的操作数被提升到高类型,结果也为高类型doubles;inti;s+i显式强制将高级数据类型转换成低级数据类型inti=(int)(1.2*y+0.5);一般会导致丢失一些数据精度,20,C#所支持的隐式类型转换,21,显式转换明确要求显示器把一种变量类型转换为另外一种变量类型时,便是显式转换,这相当于告诉编译器“我已经知道你对我这么做提出了警告,但我将对这么做的后果负责”。但这种转换很可能在程序运行期间因类型转换而造成数据丢失,造成极大破坏,这又被称为数据的溢出。推荐使用Convert命令来进行显式转换,这种转换能够成功执行的前提是:所要转换的字符串必须是数值的有效表达方式,而且不会溢出。,(目标类型)源变量;,22,可使用Convert命令转换的数据类型,23,运算符与表达式,变量和常量解决了数据的存储问题,而表达式则用于数据的处理,它是计算的的基本建立块。在C#中,将变量、常量和运算符组合在一起,便形成了表达式。运算符用于解决数据的处理方式,根据能够处理的操作数的多少,可以分为:一元运算符处理一个操作数;二元运算符处理两个操作数;三元运算符处理三个操作数。,24,数学表达式,数学运算符,变量和表达式,25,关系表达式,比较运算符,变量和表达式,26,逻辑运算符,变量和表达式,注意,/x的系数intcf2=-7;/二次方程的常数值intconstant=3;/存放表达式b2-4ac的值doubleexpression=0;doublex1=0;doublex2=0;Console.WriteLine(二次方程为:0x2+1x+2,cf1,cf2,constant);expression=Math.Sqrt(cf2*cf2-(4*cf1*constant);x1=(-cf2)+expression)/(2*cf1);x2=(-cf2)-expression)/(2*cf1);Console.Write(x=0:F2,x1);Console.Write(或);Console.WriteLine(x=0:F2,x2);,将值赋给变量,在表达式中使用的算术运算符,29,运算符的优先级,变量和表达式,30,变量和表达式,其他C#运算符,31,new操作符,new操作符用于创建一个新的类型实例。它有三种形式:对象创建表达式,用于创建一个类类型或值类型的实例。数组创建表达式,用于创建一个数组类型实例。代表创建表达式,用于创建一个新的代表类型实例。例:classA;Aa=newA;intint_arr=newint10;delegatedoubleDFunc(intx);DFuncf=newDFunc(5);,32,is操作符,/is操作符usingSystem;classOptIsExamplepublicstaticvoidMain()Console.WriteLine(1isint);Console.WriteLine(1isfloat);Console.WriteLine(1.0isfloat);Console.WriteLine(1.0isdouble);,is操作符被用于动态地检查运行时对象类型是否和给定的类型兼容。运算“eisT”的结果,其中,e是一个表达式,T是一个类型,返回值是一个布尔值。,33,命名空间,销售部,技术部,张三,张三,34,命名空间,ClassManagerlongintsalary;.,longintsalary;.,ClassManager,命名空间SaleDept,命名空间ITDept,AdminDept.Manager,ITDept.Manager,类库,35,命名空间,ClassSamsungTelevision,ClassSonyWalkman,ClassSonyTelevision,ClassSamsungWalkman,长名称难以维护,namespaceTclclassTelevision.classWalkMan.,CH.Television,Tcl.Television,namespaceCHclassTelevision.classWalkMan.,有条理,有结构,36,命名空间,namespace命名空间的名称/该名称空间的所有类都放在这里。,语法,37,命名空间,namespaceTclclassMonitorpublicvoidListModels()Console.WriteLine(“供应Tcl以下型号的显示器:);Console.WriteLine(14,15n);staticvoidMain(stringargs)/TODO:在此处添加代码以启动应用程序/,38,命名空间,namespaceCHpublicclassMonitorpublicvoidListModelStocks()Console.WriteLine(“以下是长虹显示器的规格及其库存量:);Console.WriteLine(14=1000,15=2000,17=3000);staticvoidMain(stringargs)Tcl.MonitorobjTcl=newTcl.Monitor();MonitorobjCh=newMonitor();objTcl.ListModels();objCh.ListModelStocks();,39,为什么使用命名空间(1)C#采用的是单一的全局变量命名空间,若有两个变量或函数的名称完全相同,就会出现冲突.如定义了一个用户名变量userName,可能在调用某个库文件或别的程序代码中也定义了相同的变量名,此时便出现了冲突。命名空间就是为解决C#中变量、函数的命名冲突而服务的。可以将同一名称的变量定义在不同的命名空间中。如:张家有电视机,李家也有电视机,王家也有电视机,但因为它们属于不同的家庭,使用时只需将它们所属的家庭作为前缀名即可。,命名空间和using语句,40,为什么使用using语句(2)创建了命名空间后,如果命名空间中嵌套比较深,在外部引用它们时是十分不方便的,可以使用using语句来简化对它们的访问,using语句的意思就好比是“我们需要对这个命名空间中的变量,所以不要每次总是要求对它们分类”。什么情况下使用命名空间的别名使用using语句可以简化对命名空间的引用,然而某些命名空间中很可能包含相同名称的类,在某些情况下却恰恰需要用到这些同名的类。例如在.NETFramework类库中存在3个Timer类:System.Timer.Timer、System.Threading.Timer和System.Windows.Forms.Timer,我们需要使用System.Timer.Timer在后台以固定的时间间隔检查所有应用程序或系统的状态,而使用System.Windows.Forms.Timer来在用户界面中显示一个简单的动画,这时,开发人员就必须在类前面加上命名空间。,命名空间和using语句,41,此时程序显得比较冗长,可以使用using语句来给命名空间指定一个别名。当程序中需要引用这个命名空间时,可以简单地使用它的别名,使用别名的方法和使用命名空间完全相同。using语句本身不能访问另一个命名空间中的名称,除非命名空间中的代码以某种方式链接到项目上,或者代码是在该项目的源文件中定义的,或在链接到该项目的其他代码中定义的,否则就不能访问其中包含的名称。另外,如果包含命名空间的代码链接到项目上,无论是否使用using关键字,都可以访问其中包含的变量或类。,using别名=命名空间名;,命名空间和using语句,42,命名空间别名,usingClass1=Namespace1.Test;/别名到类usingNs2=Namespace2.NameSpace3.NameSpace4;/别名到命名空间namespaceNamespace1classTestpublicTest()System.Console.WriteLine(HellofromNamespace1.Test);classMainClasspublicstaticvoidMain()Class1obj1=newClass1();Ns2.Testobj2=newNs2.Test();System.Console.Read();,namespaceNamespace2namespaceNamespace3namespaceNamespace4classTestpublicTest()System.Console.WriteLine(HellofromNamespace2.Test);,43,String类型,由一个或多个字符组成,一般以“”为界System.String类中定义了很多对字符串的操作:比较、连接、查找子串。,staticvoidMain(stringargs)stringa=u0068ello;stringb=world;stringc=a+b;Console.WriteLine(c);Console.WriteLine(c.Length);a=你好;Console.WriteLine(c);c=string.Copy(a);Console.WriteLine(c);Console.Read();,44,String类的用法,string.Format实现字符串的格式化输入两个整数,输出他们的实数除商,并输出上的第二位小数,staticvoidMain()inti=Convert.ToInt32(Console.ReadLine();intj=Convert.ToInt32(Console.ReadLine();doubleshang=(double)i/j;stringstr=string.Format(0:F3,shang);charc=strstr.Length-2;Console.WriteLine(c);Console.Read();,45,日期DateTime类型,表示时间上的一刻,通常以日期和当天的时间表示。示例:,Console.WriteLine(DateTime.Now);DateTimedate=newDateTime(2006,2,28,12,12,12);Console.WriteLine

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论