![C#编程学习笔记.docx_第1页](http://file.renrendoc.com/FileRoot1/2020-1/19/c27a9208-1ce1-4c9d-bec7-956b293de696/c27a9208-1ce1-4c9d-bec7-956b293de6961.gif)
![C#编程学习笔记.docx_第2页](http://file.renrendoc.com/FileRoot1/2020-1/19/c27a9208-1ce1-4c9d-bec7-956b293de696/c27a9208-1ce1-4c9d-bec7-956b293de6962.gif)
![C#编程学习笔记.docx_第3页](http://file.renrendoc.com/FileRoot1/2020-1/19/c27a9208-1ce1-4c9d-bec7-956b293de696/c27a9208-1ce1-4c9d-bec7-956b293de6963.gif)
![C#编程学习笔记.docx_第4页](http://file.renrendoc.com/FileRoot1/2020-1/19/c27a9208-1ce1-4c9d-bec7-956b293de696/c27a9208-1ce1-4c9d-bec7-956b293de6964.gif)
![C#编程学习笔记.docx_第5页](http://file.renrendoc.com/FileRoot1/2020-1/19/c27a9208-1ce1-4c9d-bec7-956b293de696/c27a9208-1ce1-4c9d-bec7-956b293de6965.gif)
已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#基础知识概述一、什么是.NETMicrosoft相信分布式应用程序是未来的趋势,即处理过程分布在客户端和服务器上。.NET组成1 .NET战略 应用程序在Internet上分某一个节点上为客户提供服务。2 .NET Framework 支持生成和运行下一代应用程序和XML Web Services的内部windows组件。组成:1.公共语言运行时(CLR: common language runtime) 2. .NET类库3 .NET Server INS 万维网应用编译的两个阶段:把源代码编译为Microsoft中间语言(IL)CLR把IL编译为平台专用的代码。优点:平台无关性、提高性能、语言的互操作性。中间语言:IL(Intermediate language)中间语言的特征:面向对象和借口的支持。.NET语言必须是面向对象的,带有类的单一继承性。通过借口实现跨语言访问不同的值类型和引用类型强数据类型化通用类型系统(CTS) 公共语言规范(CLS)垃圾回收、安全性、应用程序域通过异常处理错误特性的使用程序集(Assembly)私有程序集:一般附带在某个软件上,且只用于该程序。系统可保证私有程序集不被其他软件使用,因为应用程序只能加载位于主执行文件所在文件夹或其子文件夹中的程序集。共享程序集:是多个软件共享的公共库。 全局程序集缓存(GAC).NET Framework类(BCL)IL提供的核心功能(如CTS中的基本数据类型)Windows GUI支持和控件Web窗体(A)数据访问(A)目录访问文件系统和注册表访问网络和Web浏览.NET特性和反射访问Windows操作系统的各个方面COM互操作性名称空间(NameSpace)是.NET避免类名冲突的一种方式。是数据类型的一种组合方式。名称空间的约定:公司名.软件包名 Neusoft.Dawn.OrgMng.Dto.Department二、核心C#C#是一种编程语言,用于编写和生成面向.NET环境的代码。第一个C#程序: Visual Studio 2005新建项目模版程序入口编译调试资源(保存在执行文件里)和设置(保存在程序外)变量:变量声明及初始化 int i; int i=0; int x=10,y=20; Class1 cls1=new Class1();类型推断:var i=0; 自动选择类型。变量的作用域 变量的申明周期常量:const float PI=3.14f;值类型和引用类型 值类型(变量存储的是值)简单类型、结构类型、枚举类型int i=10; i:10int j=1; j:10引用类型(变量存储的是引用 也就是地址)类、接口、委托(代理)、数组Class1 c1=newClass1();c1:88888888:NewClass1()Class2 c2=c1;c2:8888流控制条件语句 IfSwitch循环语句Forwhile 先判断再循环dowhile 先循环再判断foreach跳转语句breakContinuereturn枚举枚举是用户定义的整数类型public enum TimeOfDay Morning=0, Afternoon=1, Evening=2TimeOfDay time=TimeOfDay.Afternoon;获取枚举的字符串表示time.Tostring(); output:Afternoon从字符串取得枚举值(TimeOfDay)Enum.Parse(typeof(TimeOfDay),afternoon,true);转换为整数(int)time; /output:1三、对象和类型类数据成员字段常量:声明时初始化事件功能成员方法:ref、out、params、方法重载属性构造函数只读字段只读:在构造函数中初始化静态只读:在静态构造函数中初始化结构结构是值类型但在语法上可以当做类来处理。结构不能继承结构派生于System.ValueType不能定义无参数的构造函数。部分类和静态类部分类partial关键字允许把类、结构或接口放在多个文件中。静态类不能创建静态类的实例,通常作为工具类提出。Object类所有.NET类都派生自System.Object。如果在定义类时没有指定基类,编译器会自动假定这个类派生自Object。对于结构,这个派生是间接地,结构派生自System.ValueType,ValueType派生自Object。Object方法ToString:快速获取对象的字符串表示。GetHashTable:对象作为映射数据结构中的键。GetType:返回对象的类型。Equals:比较对象相等性。扩展方法可以为类添加功能,但不需要该类的源代码。public static void AddToAmount( this Money money, decimal amountToAdd) money.Amount+=amountToAdd四、面向对象的编程对象对象基础属性方法事件继承实现继承和接口继承实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数。接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。C#类可以派生自另一个类和任意多个接口。结构不支持实现继承,但支持接口继承。实现继承虚方法: virtual 把一个基类函数声明为virtual,就可以在任何派生类中重写该函数。隐藏方法:new 如果要重写不是虚方法的基类方法,可以用new隐藏基类方法。调用函数的基类版本:base 通过base.MethodName从派生类中调用方法的基类版本。抽象类和抽象函数:abstract 抽象类不能实例化,抽象函数必须被重写。密封类和密封方法:sealed 密封类不能被继承,密封方法不能被重写。派生类的构造函数:没有默认构造的时候会按照层次逐项构造,重写默认构造函数的时候需要自定义构造顺序。修饰符修饰符应用于说明public所有类型和成员任何代码均可以访问该项protected类型和内嵌类型的所有成员只有派生的类型能访问该项internal所有类型和成员只能在包含它的程序集中访问该项private类型和内嵌类型的所有成员只能在它所属的类型中访问该项protected internal类型和内嵌类型的所有成员只能在包含它的程序集和派生类型中访问该项。其他修饰符修饰符应用于说明new函数成员成员用相同的签名隐藏继承的成员static所有成员成员不作用于类的具体实例virtual仅函数成员成员可以由派生类重写abstract仅函数成员虚拟成员定义了成员的签名,但没有提供实现代码override仅函数成员成员重写了进程的虚拟或抽象的方法sealed类、方法和属性类:不能继承自密封类。属性和方法:成员重写已继承的虚拟成员,但任何派生类中的任何成员都不能重写该成员。必须与override一起使用。泛型可以创建独立于被包含类型的类和方法性能:类型转换的性能损失。(性能会快很多,主要表现在类型转换方面)类型安全:必须设置符合泛型类型的对象。二进制代码重用:定义一次,用不同的类型实例化代码的扩展:编译为本地代码时,会为每个类型创建一个新类。命名的约定:泛型类型以T为名称或前缀。泛型类泛型接口泛型结构泛型方法类型转换隐式转换int i=10; long j=i;显式转换long i=10;int j=(int)i;溢出检查long i=300000000; int i=checked(int)i);装箱和拆箱装箱转换:把值类型转换成object类型或接口类型int i=10; object obj=i;拆箱转换:把对象类型或接口类型转化为值类型int i=10; object obj=i; int i=(int)obj;比较对象的相等性ReferenceEquals方法虚拟的Equals方法静态的Equals方法比较运算符委托(delegate)声明委托使用委托Action和Func委托多播委托匿名方法事件(event)事件基于委托,为委托提供了一种发布订阅机制。事件发布程序事件侦听器字符串(string)字符串是你一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串对象就不能改变了。创建字符串StringBuilder String和StringBuilder的性能比较集合-列表相对于数组,集合的元素个数是动态的。列表List1、实现的接口IList:通过位置访问其中的元素列表(索引器)ICollection: Count, CopeTo(); Add(); Remove(); Clear()等IEnumerable:可以foreach集合队列:Queue以先进先出(FIFO)的方式来处理集合。Count Enqueue() Dequeue() Peek()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备销售员工工作总结
- 2025-2030全球无线智能振动监测传感器行业调研及趋势分析报告
- 2025-2030全球FinFET 3D晶体管行业调研及趋势分析报告
- 2025-2030全球无人潜水器用于海上石油和天然气行业行业调研及趋势分析报告
- 2025-2030全球手机支付安全行业调研及趋势分析报告
- 2025年全球及中国纳米粒度及Zeta电位分析仪行业头部企业市场占有率及排名调研报告
- 2025-2030全球高效粘泥剥离剂行业调研及趋势分析报告
- 2025区域代理合同模板范本
- 供水工程承包合同
- 音响设备购销合同范本
- 输变电工程监督检查标准化清单-质监站检查
- 2024-2025学年北京海淀区高二(上)期末生物试卷(含答案)
- 【超星学习通】马克思主义基本原理(南开大学)尔雅章节测试网课答案
- 2024年中国工业涂料行业发展现状、市场前景、投资方向分析报告(智研咨询发布)
- 化工企业重大事故隐患判定标准培训考试卷(后附答案)
- 工伤赔偿授权委托书范例
- 食堂餐具炊具供货服务方案
- 员工安全健康手册
- 2024化工园区危险品运输车辆停车场建设规范
- 自然科学基础(小学教育专业)全套教学课件
- 华为客服制度
评论
0/150
提交评论