c_[1].net基础知识

c_[1].net基础知识

ID:36247809

大小:1.18 MB

页数:97页

时间:2019-05-07

c_[1].net基础知识_第1页
c_[1].net基础知识_第2页
c_[1].net基础知识_第3页
c_[1].net基础知识_第4页
c_[1].net基础知识_第5页
资源描述:

《c_[1].net基础知识》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一:体系结构2.NETFramework平台体系结构[C#]2栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]3一、栈和托管堆4二、类型层次结构5三、引用类型6四、预定义的引用类型7五、强制类型转换8六、装箱和拆箱(boxing/unboxing)9二:方 法10覆盖与重载(override/overload)[C#]101.方法签名与方法的显式隐藏112.方法重载与重写(overload&override)21抽象方法和虚方法的区别[C#]22深入剖析C#的多态[C#]22一、什么是多态2

2、3二、实现多态24三:委托与事件26委托和事件[C#]26引言27将方法作为方法的参数27将方法绑定到委托32事件的由来35事件和委托的编译代码41委托、事件与Observer设计模式43委托模型和事件模型[C#]531.多播委托532.事   件563.用户定义的事件61索引器(indexer)[C#]661.索引器的作用是什么?662.索引器的使用难吗?673.怎样定义一个索引器?674.使用索引器68反射(Reflection)[C#]75四:字符串781.string与String的区别782.S

3、tring与StringBuilder的区别793.string和StringBuilder性能比较80五:类与接口82抽象类和接口的区别[C#]82一、抽象类83二、接 口85三、抽象类和接口87四、其它文章89C#2.0中的静态类staticclass[C#]92静态类的限制93六:工具集使用94MSIL反汇编程序(Ildasm.exe)[C#]94一:体系结构.NETFramework平台体系结构[C#]C#程序在.NETFramework上运行,它是Windows的一个必要组件,包括一个称为公共语

4、言运行时(CLR)的虚拟执行系统和一组统一的类库。CLR是Microsoft的公共语言基础结构(CLI)的一个商业实现。CLI是一种国际标准,是用于创建语言和库在其中无缝协同工作的执行和开发环境的基础。用C#编写的源代码被编译为一种符合CLI规范的中间语言(IL)。IL代码与资源(如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll。程序集包含清单,它提供关于程序集的类型、版本、区域性和安全要求等信息。执行C#程序时,程序集将加载到CLR中,这可能会根据清单

5、中的信息执行不同的操作。然后,如果符合安全要求,CLR执行实时(JIT)编译以将IL代码转换为本机机器指令。CLR还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。由CLR执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。下图演示了C#源代码文件、基类库、程序集和CLR的编译时与运行时的关系。语言互操作性是.NETFramework的一个关键功能。因为由C#编译器生成的IL代码符合公共类型规范(CTS),因此从C#生成的IL代码可以与从VisualBasic

6、、VisualC++、VisualJ#的.NET版本或者其他20多种符合CTS的语言中的任何一种生成的代码进行交互。单一程序集可能包含用不同.NET语言编写的多个模块,并且类型可以相互引用,就像它们是用同一种语言编写的。除了运行时服务,.NETFramework还包含一个由4000多个类组成的内容详尽的库,这些类被组织为命名空间,为从文件输入和输出到字符串操作、到XML分析、到Windows窗体控件的所有内容提供多种有用的功能。典型的C#应用程序使用.NETFramework类库广泛地处理常见的“日常”任

7、务。栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]一、栈和托管堆    通用类型系统(CTS)区分两种基本类型:值类型和引用类型。它们之间的根本区别在于它们在内存中的存储方式。.NET使用两种不同的物理内存块来存储数据—栈和托管堆。如下图所示:    值类型总是在内存中占用一个预定义的字节数(例如,int类型占4个字节,而string类型占用的字节数会根据字符串的长度不同而不同),当声明一个值类型变量时,会在栈中分配适当大小的内存(除了引用类型的值类型成员外,如类的int字段),内存中的这

8、个空间用来存储变量所含的值。.NET维护一个栈指针,它包含栈中下一个可用内存空间的地址。当一个变量离开作用域时,栈指针向下移动被释放变量所占用的字节数,所以它仍指向下一个可用地址。    引用变量也利用栈,但这时栈包含的只是对另一个内存位置的引用,而不是实际值。这个位置是托管堆中的一个地址。和栈一样,它也维护一个指针,包含堆中下一个可用内存空间的地址。但是,堆不是先入后出的,因为对对象的引用可在我们的程序中传递(例如,作为参数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。