《计算机C语言概述》课件_第1页
《计算机C语言概述》课件_第2页
《计算机C语言概述》课件_第3页
《计算机C语言概述》课件_第4页
《计算机C语言概述》课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

C#概述本节学习目的对.Net和c#有一个初步的认识了解c#开发环境动手编写第一个c#程序C#概述本节学习目的1C#概述了解c#谈到c#就不得不说一下.NetFramework,.NetFramework(框架)简称.Net是微软为开发应用程序创建的一个富有革命性的平台,在这个平台上可以开发出运行在windows上几乎所有的应用程序.简单的说.netFramework就是一个创建、部署和运行应用程序的多语言多平台环境,包含了庞大的代码库,各种.Net语言都可以共用这些代码库。*开发和运行.Net程序必须要安装.NetFrameworkC#概述了解c#2C#概述.Net框架的强大功能体现提供了一个面向对象的编程环境,完全支持面向对象编程,提高软件的可复用性、可扩展性、可维护、灵活性。对web应用的强大支持.使用asp.Net开发web程序相当便捷快速.对表单元素已封装成控件,只需拖拽即可实现表单元素的添加.对web服务支持.Visualstudio是一个世界级的开发工具,与.Net完美配合.使开发.Net程序更加便捷.C#概述.Net框架的强大功能体现3C#概述.Net重要组件C#概述.Net重要组件4C#概述C#语言的特点简单:在你使用C++时大多数人会害怕指针,指针功能强大但也危机四伏.在C#中,没有了指针。默认地,您的代码工作在一种受控的环境中在那里不允许进行直接存取内存等不安全的操作。现代:有很多语言它们都没有因为时代的变化而发生多少跟近,有的甚至二十年来不曾有任何修正。看一看SQLServer2000中的decimal(金融),再比较C中的int,您就会发现我说的是多么有道理!C#语言在他的数据类型、垃圾回收、内存压缩、异常处理等诸多方面都显示出了它绝对的现代性。C#概述C#语言的特点5C#概述C#语言的特点面向对象:一种新语言不支持面向对象的功能是不可想象的。C#当然支持所有关键的面向对象的概念,如封装、继承和多态性。您一开始必须关注的事,就是不再有全局函数、变量或者是常量。这一点对于C++来说是非常令其尴尬的,但这才是真正纯粹的面向对象(请C++程序员们解释一下main函数属于哪个类)。这是面向过程向面向对象长达十多年的过渡之后,尘埃落定的产物一个典型的例子是3.ToString();C#概述C#语言的特点6C#概述C#语言的特点类型安全:使用过没有初始化的变量没有?编写的程序出过数组越界问题没有?类型转换时检查过可行性吗?i/j时忘记判断过j!=0吗?以上这些,是一个C++程序员编程时所必须小心谨慎的,但是在类型安全的C#语言中,想出现以上错误是很难的,您可以把您的注意力集中到一些更重要的地方了,比如说业务逻辑.C#概述C#语言的特点7C#概述C#语言的特点版本控制:在过去几乎所有的程序员都至少有一次不得不涉及到众所周知的"DLL"问题。该问题起因于多个应用程序都安装了相同DLL名字的不同版本。有时,老版本的应用程序可以很好地和新版本的DLL一起工作,但是更多的时候它们会中断运行。现在的版本问题真是令人头痛。就象您将在今后所看到的,C#可以最好地支持版本控制。尽管C#不能确保正确的版本控制,但是它可以为程序员保证版本控制成为可能。有这种支持,一个开发人员就可以确保当他的类库升级时,仍保留着对已存在的客户应用程序的二进制兼容。C#概述C#语言的特点8C#概述C#语言的特点兼容:一种新语言的出现,总是要顾及对之前的技术体系是否兼容的问题,比如说Java,它的出现彻底背弃了之前处于统治地位的COM技术体系,以至于Java现在很难去瓦解VC、VB和Delphi等阵营,它只能在此之外的其他技术和市场领域扎根,比如说Web、服务器、嵌入式编程等。如果Java在当初就能保持对COM技术体系的兼容的话,可能今天全球就已经是Java的天下了!完成这一工作的是.NetFrameWork,我们不难看到,越来越多的VC、VB、Delphi的程序员们转到了VC.Net、VB.Net和Delphi.Net,史上还没有哪一次的兼容之作能对软件领域产生如此大的冲击。作为.NetFrameWork的首推语言和佼佼者,C#自然也很大程度上保持了对外界技术的兼容!C#概述C#语言的特点9C#概述C#语法规范声明类:访问修饰符class类名{//……字段、属性、方法}声明方法;访问修饰符返回类型方法名(参数类表){//方法具体实现}声明变量;访问修饰符数据类型变量名,(变量名以字母开头[区分大小写],以后可以是字母、数字、下划线,没有限制长度)*声明变量时可对变量进行赋值,也可以不赋值,但在某些时候必须要对变量进行赋值.例如:局部变量C#概述C#语法规范10C#语言基础C#访问修饰符public:访问不受任何限制(公开)protected:访问仅限于包含类或从包含类派生的类型.(父类及子类可访问)Internal:访问仅限于当前程序集.protectedinternal:访问仅限于当前程序集或从包含类派生的类型。private:访问仅限于包含类型(私有)C#语言基础C#访问修饰符11C#语言基础C#数据类型值类型:整数,浮点数,高精度浮点数,布尔,字符,结构,枚举引用类型:对象(Object),字符串,类,接口,委托,数组还有一种数据类型是空类型(null)整数,浮点数,高精度浮点数,布尔,字符,对象(Object),字符串是预定义的类型

结构,枚举,类,接口,委托,数组是复合类型C#语言基础C#数据类型12C#语言基础C#数据类型什么是值类型:一种由类型的实际值表示的数据类型。如果向一个变量分配值类型,则该变量将被赋以全新的值副本(将值复制到内存中,然后将复制的内容传过去)。值类型通常创建在方法的栈帧上,而不是在垃圾回收堆中。可以对值类型进行装箱,这是一个创建相应引用类型的过程.C#中的值类型包括结构类型和枚举类型两大类以及char、byte、long、int、float和double等简单类型,值型不用GC回收,超出了作用范围,系统就会自动释放例如:inti=1; inti=1.5;?C#语言基础C#数据类型13C#语言基础C#数据类型引用类型:引用类型由类型的实际值引用(类似于指针)表示的数据类型(传地址)。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。引用型是需要GC来回收内存.例如:strings=“aa”;C#语言基础C#数据类型14C#语言基础装箱与拆箱装箱和拆箱是C#类型系统的核心概念.通过装箱和拆箱操作,能够在值类型和引用类型之间进行类型转换.装箱:就是隐式的将一个值型转换为引用型对象(值类型转换成引用类型)例如:inti=5;Objectobj=i;以上过程就是装箱,就是将i装箱!C#语言基础装箱与拆箱15C#语言基础装箱与拆箱拆箱:就是将一个引用型对象转换成任意值型(引用类型转成值类型)例如:inti=0;

Objectobj=i;

intj=(int)obj;//拆箱这个过程前2句是将i装箱,后一句是将obj拆箱请看示例:inti=0;

Objectobj=i;

Console.WriteLine(i+","+(int)obj);*发生了多少次装箱和拆箱呢?C#语言基础装箱与拆箱16C#语言基础装箱与拆箱示例:其中共发生了3次装箱和一次拆箱!看出来了吧

第一次是将i装箱,第2次是输出的时候将i转换成string类型,而string类型为引用类型,即又是装箱,第三次装箱就是(int)obj的转换成string类型,装箱!

拆箱就是(int)obj,将obj拆箱.

C#语言基础装箱与拆箱17C#语言基础值类型与引用类型的区别值类型的变量包含自身的数据,而引用类型的变量是指向数据的内存块的,并不是直接存放数据。对于值类型,每个变量都有一份自己的数据复制,对另一个值类型变量的操作并不影响这一个变量的值。而对于引用类型,两个变量有可能引用同一对象,因此对一个变量的操作会影响到另一个变量。例如:inta=0;intb=a;b=10;C#语言基础值类型与引用类型的区别18C#语言基础值类型与引用类型的区别classaa{

publicintvalue=0;}classtext{publicstaticvoidmain(){aaa=new

aa();aab=a;b.value=10;Console.WriteLine(“{0},{1}”,a.value,b.value);}}就相当于指针,两个变量指向同一块内存数据,当一个变量对内存区数据改变之后,另一个变量指向的数据当然也会改变。C#语言基础值类型与引用类型的区别19C#语言基础常量、变量、运算符什么是常量?:经常存在的变量,值保持不变.C#中常量有两种静态常量:用const来修饰,系统不为其分配内存空间声明方式:访问修饰符const数据类型变量名,*静态常量的声明需要赋初始值,而且数据类型必须是值类型的,同时此类型初始化不能通过new来完成,所以struct不能用const来修饰.动态常量:用readonly来修饰系统为其分配内存空间声明方式同上; *由readonly所定义的常量除了在定义的时候可以设定常量值外,还可以在类的构造函数中进行设定。由于readonly所定义的常量相当于类的成员,因此使用const来定义常量所受到的类型限制,在使用readonly去定义的时候全部消失,即可以用readonly去定义任何类型的常量.C#语言基础常量、变量、运算符20C#语言基础常量、变量、运算符如何使用常量静态常量:声明:classaa{publicconstintf=9;}使用:aa.f;C#语言基础常量、变量、运算符21C#语言基础常量、变量、运算符动态常量:声明:classtest{publicreadonlystringff;publicaa(){this.ff=newstring(newchar[]{'d','f'});}}使用:testt=newtest();t.ffC#语言基础常量、变量、运算符22C#语言基础常量、变量、运算符变量:内存中存放数据容器的名称.就好像一个杯子,可以放水,可以放饮料……声明变量:访问修饰符数据类型变量名例如:publicinta=0;(声明同时并赋值)例如:publicinta;(只声明变量并未赋值)例如:publicinta,b,c;*但要注意局部变量声明后必须赋值C#语言基础常量、变量、运算符23C#语言基础常量、变量、运算符声明变量注意事项C#中所有变量要区分大小写C#中每一句结尾必须写”;”表示结束不能引用没有赋值的变量例如:inta;Console.WriteLine(a);不能对未声明的变量赋值和引用例如:name="小明";Console.WriteLine(name);可以在声明变量同时赋值例如:stringname="小明";Console.WriteLine(name);同类型的变量可以一起声明例如:publicinta,b,c;不能声明同名变量C#语言基础常量、变量、运算符24C#语言基础常量、变量、运算符运算符:赋值操作符除基本的赋值操作符“=”之外还包括以下的组合赋值操作符+=如:intx;x+=5;相当于:x=x+5;-=如:inty,z=4;y-=z;相当于:y=y-z;*=如:doublex,y=2.3;x*=y;相当于:x=x*y;/=如:intx,y;inta=5;y=3;x/=y+a;相当于:x=x/(y+a);%=如:inty,x=12;y%=x;相当于:y=y%x;>>=如:inty=16;y>>=2;相当于:y=y>>2;<<=如:inta=32;a<<=3;相当于:a=a<<3;^=如:inta=32;a^=2;相当于:a=a^2;C#语言基础常量、变量、运算符25C#语言基础常量、变量、运算符算术操作符加法操作符(+)减法操作符(-)乘法操作符(*)除法操作符(/)求余操作符(%)求余不仅可以对整数操作还可以对小数操作例如:Console.WriteLine(3.5%2.1);C#语言基础常量、变量、运算符26C#语言基础常量、变量、运算符关系操作符==比较!=不等于<小于>大于<=小于等于>=大于等于*对于布尔类型、引用类型和字符串类型,只能使用==和!=两个关系操作符,即无大小之分,只有是否相等和不相等之分例如:staticvoidMain(){inta=23,b=19;boolb1=false,b2=true,b3=false;doublex=7E+3,y=0.0001;charch='x';Console.WriteLine("a<b+4:{0}",a<b+4);Console.WriteLine("(b1&&b3)!=b2:{0}",(b1&&b3)==b2);Console.WriteLine("(b1&&b2)==b3:{0}",(b1&&b2)==b3);Console.WriteLine("x<y*1000:{0}",x<y*1000);Console.WriteLine("ch-32=='X'-'A'+65:{0}",ch-32=='X'-'A'+65);}C#语言基础常量、变量、运算符27C#语言基础常量、变量、运算符逻辑操作符&&表示逻辑“与”的关系,二元操作符;||表示逻辑“或”的关系,二元操作符;!表示逻辑“非”的关系,一元操作符;C#语言基础常量、变量、运算符28C#语言基础常量、变量、运算符条件操作符(唯一的一个三元运算):?:写法:表达式1?表达式2:表达式3三元运算时如何工作的当表达式1运算成立时执行表达式2否则就执行表达式3思考:1==2?true:false

C#语言基础常量、变量、运算符29C#语言基础C#程序控制结构顺序结构什么事顺序结构反映事物之间一种有先有后的相互关系,在这种结构中排在最前面的为第一,排在最后的为末尾,排在中间的有前驱和后继,在这种结构中程序由上到下依次执行,直到最后一条语句为止.C#语言基础C#程序控制结构30C#语言基础C#程序控制结构选择结构:If语句语法If(表达式){//一些操作}解释:当执行到if语句是首先对表达式进行计算,如果条件成立则执行if后面大括号内的操作示例:inta=5;intb=6;if(a<b){Console.WriteLine(b);}C#语言基础C#程序控制结构31C#语言基础C#程序控制结构选择结构双分支形式:if-else语法:If(表达式){语句1;}Else{语句2;}解释:当执行到if语句是首先对表达式进行计算如果计算结果不成立则执行else后面大括号中的语句,相反则执行if后面大括号中的语句示例:inta=5;intb=6;if(a<b){Console.WriteLine(b);}else{Console.WriteLine(a);}C#语言基础C#程序控制结构32C#语言基础C#程序控制结构多分支形式:if-elseif……语法:If(表达式1){语句1;}Elseif(表达式2){语句2;}Elseif(表达式3){语句3;}……解释:当程序执行到if语句时首先计算表达式1如果计算结果成立则执行语句1,如果不成立则对表达式2进行计算,如果表达式2计算成立则执行语句2,如果不成立则对表达式3进行计算,如果成立则执行语句3,依次类推C#语言基础C#程序控制结构33C#语言基础C#程序控制结构示例:if(DateTime.Now.Hour>0&&DateTime.Now.Hour<=12){Console.WriteLine("早上好");}elseif(DateTime.Now.Hour>12&&DateTime.Now.Hour<=18){Console.WriteLine("下午好");}elseif(DateTime.Now.Hour>18&&DateTime.Now.Hour<=24){Console.WriteLine("晚上好");}C#语言基础C#程序控制结构34C#语言基础C#程

温馨提示

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

评论

0/150

提交评论