C#所有知识总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一部分: 第一章:初识C#和.NET
1.1:.NET 框架和.NET Framework 简介 1.1.1.:认识.NET 框架与.NET Framework
Win32 消息队
列
COM+ (事务、对象构造 和 对象池) IIS W MI 公共语言运行库 .NET Framework 类库 :数据 和 XML Web 服务 用户界面 VB C++ C#
Pe rl Python … 用户界面:.NET 支持三种类型的用户界面(Web 窗体、
Window 窗体和控制台)
Web 服务:.NET Framework 提供了类库和工具支持 :建立在 CLR 上的新型 Web 编程模型,Web 窗体提供了强大的动态用户界面编程支持
:下一代 ADO 数据访问组件,提供了丰富的 XML 支持
.NET Framework 类库:扩展了运行时的功能,提供高层的服务支持,一致的编程接口简化了应用程序的开发
公共语言运行库:提供安全和强壮的执行环境,提供多线程支持,简化应用程序的部署和管理
应用程序服务:如 COM+ 服务、MSMQ 、WMI 、IIS 等,Windows2000 以上操作系统中.NET Framework 类库提供了相应的支持
操作系统底层:.NET Framework 必须运行在操作系统上,如Win32、WinCE 、PocketPC 等操作系统
.NET 类库支持:通过和运行时集成代码来支持.NET Framework 类库
COM 封送拆收器:提供和 COM 组件之间的封送 线程:提供多线程编程支持 异常管理器:提供和 Windows 结构化异常处理集成的异常处理机制
类型检查器:不允许不安全的类型转换和未初始化变量 MSIL 可被校验以保证类型安全
调试器:使开发者能够调试应用程序和根据代码执行
安全引擎:提供基于证据的安全, 基于用户身份和代码来源 垃圾回收器:为.NET Framework 下的所有对象提供自动生命期管理,支持多处理器,可扩展 代码管理器:管理和执行代码
Microsoft 中间语言到本地代码编译器:通过即时编译把
.NET Framework 类库支持 线程支持 COM 封送拆收器 类型检查器 异常管理器 MSIL 到本地 代码 编
代码管理器 垃圾回
收器
安全引擎 调试器
类加载器
.NET是微软提供的平台及设备无关的软件开发模型。
而.NET Framework则是一个用于创建、开发和运行Web服务及应用程序的平台,是.NET的基础。
1.1.2:.NET的强大魅力:
A.提供了一个面向对象的编程环境,完全支持面向对象编程。
B.对Web应用的强大支持。
C.对Web Service(Web服务)的支持。
D.支持.NET程序的炫彩外衣。
1.1.3:.NET框架结构的组件:
a.CLR:公共语言运行时,是.NET框架定的基础。
b.框架类库:是一个综合的面向对象的可重用类型集合。
1.2:.NET Framework
1.2.1:.NET Framework的新特征:
a.WPF(Windows Presentation Foundation):Windows介绍基础,它是Vista()操作系统的核心开发库之一。
b.WCF(Windows Communication Foundation):Windows通讯基础。
c.WF(Windows Workflow Foundation):Windows工作流(如:订单--》发货--》付款--》交易完成)基础。
WF是一个广泛通用的工作流框架。
d.Windows CardSpace:是微软取代用户名和密码成为验证网络使用者身份的新方法。
e.LINQ:(Language Integrated Query):语言集成查询,
1.3:公共语言运行时(CLR)
1.3.1:CLR在.NET Framework中起的作用:
它是所用.NET应用程序运行时环境,是所用.NET应用程序都要使用的编程基础。
开发和运行应用程序必须安装.NET Framework。
CLR也可以看做一个在执行时管理代码的代理,管理代码时CLR的基本原则,能够被管理的代码称为托管代码,反之称为非托管代码。
1.3.2:.NET编译技术
.NET所用应用程序都是编译成微软中间代码(MSIL,Microsoft Intermediate Language),再通过JIT(Just In Time)编译器装换成机器代码,生成相应的平台专用代码。
能够编译为IL (公共代码)的语言都可以被.NET Framework托管。
.NET Framework 4.0支持的可编译为IL的语言有C# 、 、C++.NET。
1.3.3:CLR的组成部分:
A.CLS(公共语言规范):是一种最低的语言标准,编码规范。
B.CTS(通用类型系统):用于解决不同语言的数据类型不同的问题。
1.4:框架类库:提供了.NET应用程序开发的组件和控件的基础。
命名空间
命名空间是.NET避免类名冲突的一种方式
.NET需要在命名空间中定义所有的类型
.NET Framework类库包含了大量的类库,这些类库被组织在命名空间体系结构下
命名空间用“.”号来分组管理相关的类库
System 命名空间是根命名空间
System 空间下包含Object 对象,它是所有.NET 类的隐含基类
System 命名空间下包含异常处理、垃圾收集、IO、数据处理、文本处理等类库
1.5::数据和XML
1.6:Web 窗体和服务
:数据和 XML OleDb SqlClie Comm SQLTyp
XSL
Serializatio n
XPath
System.Web
Configurati on
SessionStat e
Caching Security Services Descriptio n
Discovery Protocols UI HtmlContr ols
WebContr ols System Globalizatio n Diagnostics Configuratio n Collections Resources Reflection Net IO Threading
Text Security Runtime
ServiceProc ess
第二章:深入C#数据类型
2.1:类的属性
累的属性有:只读属性:set
只写属性:get
读写属性:get和set
在声明属性时,将代码写成:public string Name{get;set;}时,编译器将自动为该属性生成私有变量(private string name;);
自动属性的适用场合:a.不对字段进行逻辑验证的操作。
B.不设置只读和只写属性,即必须是读写属性;
2.2:初识封装(Encapsulation)
封装又称影藏,指利用抽象数据类型将数据和数据的操作集合在一起,使其构成一个不可分割的独立实体,尽可能影藏内部的细节,只保留一些对外接口,使之与外部发生关系;
封装的好处:A.保证数据的安全性
B.提供清晰的对外接口
C.类内部实现可以任意修改,不影响其他类。
2.3:类图
组成部分(从上到下):类名、字段、属性、方法
私有成员用“-”;公有成员用“+”
2.4 值类型和引用类型
值类型:值类型源于:System.ValueType家族;每个值类型的对象都有一个独立的内存区域保存自己的值,值类型数据所在的内存区域为栈(stack);值类型主要包含:int、long、char、bool、struct(结构类型)、float、double、枚举等;
引用类型:源于:System.Object家族;引用类型的传值,只复制对象的引用,而不复制对象本身;引用类型主要包括:类(基类(System.Object)、字符串string、自定义类)、接口interface、数组int[]/string[]
2.5:结构(structure):结构时值类型,所以用的越多越耗内存
结构的定义:访问修饰符struct 结构名
{
结构体
}
机构的定义的特点:a.结构中可以有字段,也可以有方法
B.定义时,结构中的字段不能被赋值
结构的构成与类相似,在使用时要注意:
A.不可以使用new,直接定义结构的对象即可;
B.声明结构的对象后,必须给结构的成员赋初值
如:
声明结构:
Public struct Student
{
public int id;
Public int age;
Public void Show()
{
Console.WriteLine(“ID:”+id+”\n年龄:”+age)
}
}
//结构的调用
Static void Main(string[] args)
{
Student stu;
stu.id=1001;
stu.age=20;
}
2.6:装箱和拆箱
将值类型转换为引用类型的过程为装箱,反之成为拆箱;
2.7:不同类型的参数传递
值方式参数传递:参数不用ref修饰;
A.使用引用类型作为参数:当引用变量发生了改变时,参数也发生了改变;
B.值类型作为参数:当参数变量的值发生改变时,不能够改变值类型参数
的值;
应用方式参数传递:参数使用ref修饰;使用引用类型作为参数、值类型作为参数都将保存方法中的修改。
2.8:静态成员(static)
静态成员的两种形式:静态成员变量和静态成员方法;
类的静态成员在第一次访问类前被初始化,并为他非配一个空间,之后一直存在,直到程序结束才释放;
静态成员于实例成员的比较:实例成员只要创建了类的实例就会被初始化。
对应类的实例。