版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#概述,本节学习目的 对.Net和c#有一个初步的认识 了解c#开发环境 动手编写第一个c#程序,C#概述,了解c# 谈到c#就不得不说一下.Net Framework, .Net Framework(框架)简称.Net是微软为开发应用程序创建的一个富有革命性的平台,在这个平台上可以开发出运行在windows上几乎所有的应用程序.简单的说.net Framework就是一个创建、部署和运行应用程序的多语言多平台环境,包含了庞大的代码库,各种.Net语言都可以共用这些代码库。 *开发和运行.Net程序必须要安装.Net Framework,C#概述,.Net框架的强大功能体现 提供了一个面向对
2、象的编程环境,完全支持面向对象编程,提高软件的可复用性、可扩展性、可维护、灵活性。 对web应用的强大支持.使用asp.Net开发web程序相当便捷快速.对表单元素已封装成控件,只需拖拽即可实现表单元素的添加. 对web服务支持. Visual studio是一个世界级的开发工具,与.Net完美配合.使开发.Net程序更加便捷.,C#概述,.Net重要组件,C#概述,C#语言的特点 简单:在你使用C+时大多数人会害怕指针,指针功能强大但也危机四伏. 在C#中,没有了指针。默认地,您的代码工作在一种受控的环境中在那里不允许进行直接存取内存等不安全的操作。 现代:有很多语言它们都没有因为时代的变化
3、而发生多少跟近,有的甚至二十年来不曾有任何修正。看一看SQL Server 2000中的decimal(金融),再比较C中的int,您就会发现我说的是多么有道理!C#语言在他的数据类型、垃圾回收、内存压缩、异常处理等诸多方面都显示出了它绝对的现代性。,C#概述,C#语言的特点 面向对象:一种新语言不支持面向对象的功能是不可想象的。C#当然支持所有关键的面向对象的概念,如封装、继承和多态性。您一开始必须关注的事,就是不再有全局函数、变量或者是常量。这一点对于C+来说是非常令其尴尬的,但这才是真正纯粹的面向对象(请C+程序员们解释一下main函数属于哪个类)。这是面向过程向面向对象长达十多年的过渡
4、之后,尘埃落定的产物一个典型的例子是3.ToString();,C#概述,C#语言的特点 类型安全:使用过没有初始化的变量没有?编写的程序出过数组越界问题没有?类型转换时检查过可行性吗?i/j时忘记判断过j!=0吗?以上这些,是一个C+程序员编程时所必须小心谨慎的,但是在类型安全的C#语言中,想出现以上错误是很难的,您可以把您的注意力集中到一些更重要的地方了,比如说业务逻辑.,C#概述,C#语言的特点 版本控制:在过去几乎所有的程序员都至少有一次不得不涉及到众所周知的DLL问题。该问题起因于多个应用程序都安装了相同DLL名字的不同版本。有时,老版本的应用程序可以很好地和新版本的DLL一起工作,
5、但是更多的时候它们会中断运行。现在的版本问题真是令人头痛。就象您将在今后所看到的,C#可以最好地支持版本控制。尽管C#不能确保正确的版本控制,但是它可以为程序员保证版本控制成为可能。有这种支持,一个开发人员就可以确保当他的类库升级时,仍保留着对已存在的客户应用程序的二进制兼容。,C#概述,C#语言的特点 兼容:一种新语言的出现,总是要顾及对之前的技术体系是否兼容的问题,比如说Java,它的出现彻底背弃了之前处于统治地位的COM技术体系,以至于Java现在很难去瓦解VC、VB和Delphi等阵营,它只能在此之外的其他技术和市场领域扎根,比如说Web、服务器、嵌入式编程等。如果Java在当初就能保
6、持对COM技术体系的兼容的话,可能今天全球就已经是Java的天下了!完成这一工作的是.Net FrameWork,我们不难看到,越来越多的VC、VB、Delphi的程序员们转到了VC.Net、VB.Net和Delphi.Net,史上还没有哪一次的兼容之作能对软件领域产生如此大的冲击。作为.Net FrameWork的首推语言和佼佼者,C#自然也很大程度上保持了对外界技术的兼容!,C#概述,C#语法规范 声明类: 访问修饰符 class 类名 /字段、属性、方法 声明方法; 访问修饰符 返回类型 方法名(参数类表)/方法具体实现 声明变量; 访问修饰符 数据类型 变量名,(变量名以字母开头区分大
7、小写,以后可以是字母、数字、下划线,没有限制长度) *声明变量时可对变量进行赋值,也可以不赋值,但在某些时候必须要对变量进行赋值.例如:局部变量,C#语言基础,C#访问修饰符 public:访问不受任何限制(公开) protected:访问仅限于包含类或从包含类派生的类型.(父类及子类可访问) Internal:访问仅限于当前程序集. protected internal:访问仅限于当前程序集或从包含类派生的类型。 private:访问仅限于包含类型(私有),C#语言基础,C#数据类型 值类型:整数,浮点数,高精度浮点数,布尔,字符,结构,枚举 引用类型:对象(Object),字符串,类,接口
8、,委托,数组 还有一种数据类型是空类型(null) 整数,浮点数,高精度浮点数,布尔,字符,对象(Object),字符串 是预定义的类型结构,枚举,类,接口,委托,数组 是复合类型,C#语言基础,C#数据类型 什么是值类型:一种由类型的实际值表示的数据类型。如果向一个变量分配值类型,则该变量将被赋以全新的值副本(将值复制到内存中,然后将复制的内容传过去)。值类型通常创建在方法的栈帧上,而不是在垃圾回收堆中。可以对值类型进行装箱,这是一个创建相应引用类型的过程. C#中的值类型包括结构类型和枚举类型两大类以及char、byte、long、int、float和double等简单类型,值型不用GC回
9、收,超出了作用范围,系统就会自动释放 例如:int i=1; int i=1.5;?,C#语言基础,C#数据类型 引用类型: 引用类型由类型的实际值引用(类似于指针)表示的数据类型(传地址)。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。引用型是需要GC来回收内存. 例如:string s = “aa”;,C#语言基础,装箱与拆箱 装箱和拆箱是C#类型系统的核心概念.通过装箱和拆箱操作,能够在值类型和引用类型之间进行类型转换. 装箱:就是隐式的将一个值型转换为引用型对象(值类型转换成引用类型) 例如:int i =
10、5; Object obj = i; 以上过程就是装箱,就是将i装箱!,C#语言基础,装箱与拆箱 拆箱:就是将一个引用型对象转换成任意值型(引用类型转成值类型) 例如: int i=0;Object obj=i;int j=(int)obj;/拆箱 这个过程前2句是将i装箱,后一句是将obj拆箱 请看示例: int i=0;Object obj=i;Console.WriteLine(i+,+(int)obj); *发生了多少次装箱和拆箱呢?,C#语言基础,装箱与拆箱 示例: 其中共发生了3次装箱和一次拆箱!看出来了吧第一次是将i装箱,第2次是输出的时候将i转换成string类型,而strin
11、g类型为引用类型,即又是装箱,第三次装箱就是(int)obj的转换成string类型,装箱!拆箱就是(int)obj,将obj拆箱.,C#语言基础,值类型与引用类型的区别 值类型的变量包含自身的数据,而引用类型的变量是指向数据的内存块的,并不是直接存放数据。对于值类型,每个变量都有一份自己的数据复制,对另一个值类型变量的操作并不影响这一个变量的值。而对于引用类型,两个变量有可能引用同一对象,因此对一个变量的操作会影响到另一个变量。 例如:int a = 0;int b=a;b=10;,C#语言基础,值类型与引用类型的区别 class aa public int value=0; class t
12、ext public static void main() aa a=new aa(); aa b=a; b.value=10; Console.WriteLine(“0,1”,a.value,b.value); 就相当于指针,两个变量指向同一块内存数据,当一个变量对内存区数据改变之后,另一个变量指向的数据当然也会改变。,C#语言基础,常量、变量、运算符 什么是常量?:经常存在的变量,值保持不变. C#中常量有两种 静态常量:用const 来修饰,系统不为其分配内存空间 声明方式:访问修饰符 const 数据类型 变量名, *静态常量的声明需要赋初始值,而且数据类型必须是值类型的,同时此类型初
13、始化不能通过new来完成,所以struct不能用const来修饰. 动态常量:用readonly来修饰系统为其分配内存空间 声明方式同上; *由readonly所定义的常量除了在定义的时候可以设定常量值外,还可以在类的构造函数中进行设定。由于readonly所定义的常量相当于类的成员,因此使用const来定义常量所受到的类型限制,在使用readonly去定义的时候全部消失,即可以用readonly去定义任何类型的常量.,C#语言基础,常量、变量、运算符 如何使用常量 静态常量: 声明: class aa public const int f = 9; 使用:aa.f;,C#语言基础,常量、变量
14、、运算符 动态常量: 声明: class test public readonly string ff; public aa() this.ff = new string(new char d, f ); 使用:test t = new test();t.ff,C#语言基础,常量、变量、运算符 变量:内存中存放数据容器的名称. 就好像一个杯子,可以放水,可以放饮料 声明变量:访问修饰符 数据类型 变量名 例如:public int a = 0;(声明同时并赋值) 例如:public int a;(只声明变量并未赋值) 例如:public int a,b,c; *但要注意 局部变量声明后必须赋值
15、,C#语言基础,常量、变量、运算符 声明变量注意事项 C#中所有变量要区分大小写 C#中每一句结尾必须写”;”表示结束 不能引用没有赋值的变量 例如:int a; Console.WriteLine(a); 不能对未声明的变量赋值和引用 例如:name = 小明; Console.WriteLine(name); 可以在声明变量同时赋值 例如:string name = 小明; Console.WriteLine(name); 同类型的变量可以一起声明 例如: public int a,b,c; 不能声明同名变量,C#语言基础,常量、变量、运算符 运算符: 赋值操作符除基本的赋值操作符“=”之
16、外还包括以下的组合赋值操作符 += 如:int x; x+=5; 相当于:x=x+5; -= 如:int y,z=4; y-=z; 相当于:y=y-z; *= 如:double x,y = 2.3; x*=y;相当于:x=x*y; /= 如: int x,y;int a=5; y=3; x/=y+a;相当于:x=x/(y+a); %= 如: int y,x=12; y%=x; 相当于:y=y%x; = 如: int y=16; y=2;相当于:y=y2; = 如: int a=32; a=3;相当于:a=a3; = 如: int a=32;a=2; 相当于:a=a2;,C#语言基础,常量、变量
17、、运算符 算术操作符 加法操作符(+) 减法操作符(-) 乘法操作符(*) 除法操作符(/) 求余操作符(%) 求余不仅可以对整数操作还可以对小数操作 例如:Console.WriteLine(3.5 % 2.1);,C#语言基础,常量、变量、运算符 关系操作符 = 比较 != 不等于 大于 = 大于等于 * 对于布尔类型、引用类型和字符串类型,只能使用=和!=两个关系操作符,即无大小之分,只有是否相等和不相等之分 例如: static void Main() int a=23,b=19; bool b1=false,b2=true,b3=false; double x=7E+3,y=0.00
18、01; char ch=x; Console.WriteLine(ab+4:0,ab+4); Console.WriteLine(b1 ,C#语言基础,常量、变量、运算符 逻辑操作符 int b = 6; if (a b) Console.WriteLine(b); ,C#语言基础,C#程序控制结构 选择结构 双分支形式:if-else 语法: If(表达式) 语句1; Else 语句2; 解释:当执行到if语句是首先对表达式进行计算如果计算结果不成立则执行else后面大括号中的语句,相反则执行if后面大括号中的语句 示例: int a = 5; int b = 6; if (a b) Con
19、sole.WriteLine(b); else Console.WriteLine(a); ,C#语言基础,C#程序控制结构 多分支形式:if-else if 语法: If(表达式1) 语句1; Else if(表达式2) 语句2; Else if(表达式3) 语句3; 解释:当程序执行到if语句时首先计算表达式1如果计算结果成立则执行语句1,如果不成立则对表达式2进行计算,如果表达式2计算成立则执行语句2,如果不成立则对表达式3进行计算,如果成立则执行语句3,依次类推,C#语言基础,C#程序控制结构 示例: if (DateTime.Now.Hour 0 ,C#语言基础,C#程序控制结构 使用if语句注意的问题 在三种形式中的if语句后面均为表达式,表达式的计算结果必须是逻辑的布尔值,ture或者false 表达式可以是关系表达式,也可以是逻辑表达式 条件表达式必须用小括号括起来. Else总是与距离它最近的if匹配 示例: If语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青鸟读后感集合15篇
- 私立医院护士聘用合同(33篇)
- 租赁房屋商用合同书(3篇)
- 工程建设项目实施方案(3篇)
- 小餐桌食品安全承诺书(33篇)
- 广东省惠州市2024−2025学年高三第二次调研考试(期中) 数学试题含答案
- 最佳路径教案5篇
- 山西省晋中市(2024年-2025年小学五年级语文)统编版小升初真题((上下)学期)试卷及答案
- 2024年防粘剂项目资金筹措计划书
- 2023年皮革色浆资金筹措计划书
- 永久避难硐室避险安全知识课件
- 大学生心理健康教育课件-了解原生家庭
- 低空经济产业园商业计划书
- 女性的情绪及压力管理
- 腰椎骨折查房护理课件
- 养生祛病一碗汤
- 中国手机租赁行业市场发展前景研究报告-智研咨询发布
- 预防接种工作规范(2023年版)解读课件
- 老年慢性支气管炎的健康宣教
- 大国工匠技能报国课件
- 制冷与空调设备运行操作作业
评论
0/150
提交评论