美文网首页
C#图解教程笔记20170717

C#图解教程笔记20170717

作者: 李大_C | 来源:发表于2017-07-17 17:48 被阅读108次

    2017/7/17

    C#和.NET框架

    .NET框架,CLR的C#语言

    .net框架是一个独立发布的软件包,包括了CLR,类库以及相关的语言编译器等工具。C#代码经过编译之后再CLR环境中运行。

    .NET框架是一种比MFC或COM变成技术更一致并面向面对对象的环境,它的特点包裹一下几点。

    1.多平台:该系统可以在广发的计算机上运行,包括服务器,桌面机到PDA和移动电话。

    2.行业标准:该系统使用行业标准的通信协议,比如XML,HTTP,SOAP和WSDL。

    3.安全性:该系统能提供更加安全的执行环境,及时有来源可疑的代码存在。

    .NET框架由三部分组成

    执行环境称为CLR(Common Language Runtime,公共语言运行库)。CLR在运行期管理程序的执行。

    BCL  基类库

    大大改进的编程环境

    1.面向对象的编程环境

    CLR,BCL和C#被设计的完全面对对象,并形成良好的集成环境

    2.自动垃圾回收

    CLR有一项服务称为GC(垃圾收集),它能为你自动管理内存

    3.互操作性

    .NET框架的设计专门考虑了不同的.NET语言,操作系统或Win32 DLL和COM之间的互操作性 

    (1).NET语言的互操作性允许不同的.NET语言编写的类,只需要遵循一定的规则即可。

    (2).NET提供一种称为平台调用的特性,允许.NET的代码调用并使用非.NET的,但通过标准Win32 DLL 到处的纯C函数的代码,比如Windows API.

    (3).NET框架还允许与COM的互操作。.NET软件组件能调用COM组件,而且COM也能调用.NET组件,就像它们是COM组件一样。

    4.不需要COM

    5.简化的部署

    6.类型安全性

    7.基类库

    包含以下一些类

    通用基础类:这些类提供了一组极为强大的工具,可以应用到广发的编程任务中,比如字符串操作,安全和加密。

    集合类:这些类实现了列表,字典,散列表以及位数组

    线程和同步类:这些类用于创建多线程程序

    XML类:这些用于创建读取以及操作XML文档

    编译成CIL

    .NET语言的编译器接受源代码文件,并生成名为程序集的输出文件。程序集可以使可执行的文件或DLL

    1 程序集里的代码并不是本机代码,而是一种名称为CIL(Common Intermediate Language,公共中间语言)的中间语言

    2 程序集包含 的信息中包含下列项目

    程序的CIL;

    程序中使用的类型的元数据;

    对其他程序集引用的元数据。

    编译成本机代码并执行

    程序的CIL直到他被调用运行时才会被编译成本机代码,在运行时,CLR执行下面的步骤(如图):

    1、检查程序集的安全特性;

    2、在内存中分配空间;

    3、把程序集中的可执行的代码发送给实时(Just-in-Time,JIT)编译器,把其中的一部分编译成本机代码。

    程序集中的可执行的代码在需要的时候由JIT编译器编译,然后他就被缓存已被再后来的程序中执行。使用这个方法以为着不被调用的代码不会被编译成本机代码,而且被调用到的代码纸杯编译一次。

    一旦CIL被编译成本机代码,CLR就在他运行时管理它,执行像释放无助内存,检查数组边界,检查参数类型和管理异常之类的任务。

    托管代码:为.NET框架编写的代码,需要CLR。

    非托管代码:不在CLR控制之下运行的代码,比如Win32 C/C++ DLL。

    编译和执行综述

    无论原始源文件的语言是什么,都遵循同样的编译和执行过程

    CLR

    .NET框架的核心组件是CLR,他在操作系统的顶层并管理程序的执行,如图所示。CLR还提供下列服务:

    自动垃圾回收;

    安全和认证;

    通过访问BCL(base class library,基类库)得到广泛的编程功能,包括入院Web服务和数据服务之类的功能。

    CLI

    CLI(Common Language Infrastructrue,公共语言基础结构),他把所有的.NET框架的组件连接成一个内聚的,一致的系统。他展示了系统的概念和架构,并详细说明了所有软件都必须坚持的规定和约定。CLI是一组阐述了系统的架构,规则和约定的规范。

    CLI的重要组成部分

    1.公共类型系统

    CTS(Common Type System,公共类型系统)定义了那些在托管代码中一定会使用的类型的特征。CTS的一些重要方面如下:

    CTS定义了一组丰富的内置类型,以及每种类型确定的、详细的特性;

    .NET兼容编程语言提供的类型通常映射到CTS中已定义的内置类型集的某一个特殊子集;

    CTS最重要的特征之一是所有类型都集成自公共的基类——object。

    2.公共语言贵方

    CLS(conmon language specification,公共语言规范)详细的说明了一个.NET兼容编程语言的规则,属性和行为。其主题包裹数据类型和,类结构和参数传递。

    缩写回顾



    C#编程概述

    命名约定

    标识符风格

    Pascal风格  标识符中每个单词首字母大写   用于类型名和成员名      CarDeck,DealersHand

    Canel风格    除第一个单词以外,标识符中所有单词都首字母大写  用于本地变量和方法参数

    字段名称以下划线开头:_HighTemp、_LowTemp.

    6种可以有用户自己创建的类型:

    类类型  class;

    结构类型 struct ;

    数组类型 array;

    美剧类型 enum;

    委托类型 delegate;

    接口类型 interface;

    运行中的程序使用两个内存区域来储存数据:栈和堆。

    栈是一个内存数组,是一个LIFO(last-in first-out,后进先出)的数据结构,栈储存几种类型的数据:

    某些类型变量的值;

    程序当前的执行环境;

    传递给方法的参数。

    栈的特征

    栈有如下几个普遍特征:

    数据只能从栈的顶端插入和删除;

    把数据放到栈顶 称为入栈;

    从栈顶删除数据称为出栈;

    堆是一块内存区域,堆里的内存可以任意顺序存入和移除。

    程序可以在堆里保存数据,但并不能显示的删除它们。CLR的自动GC在判断出程序的代码将不会在访问某数据项时,会自动清除无主的堆对象。

    值类型   只需要一段单独的内存,用于储存实际的数据,位于栈中

    引用类型  需要两段内存

    第一段储存实际的数据,位于堆中。

    第二段是一个引用,指向数据在堆中的存放位置,引用放在栈里

    说明:对于引用类型的任何对象,他所有的数据成员都存放在堆里,无论他们是指类型还是引用类型。

    变量

    变量是一个名称,表示程序执行时储存在内存中的数据


    类:基础

    类是一个能储存数据并执行代码的数据结构,它包含以下内容:

    数据成员,它储存与类的实例相关的数据,数据成员通常模拟该类所表示的显示世界事务的特性

    函数成员,它执行代码。函数成员通常模拟类所表示的显示世界事务的功能和操作。

     类是逻辑相关的数据和函数的封装,通常代表真实世界中的或概念上的事务。

    运行中的程序是一组相互作用的对象。

    字段和方法是最重要的类成员类型,字段是数据成员,方法是函数成员。

    字段

    字段是隶属于类的变量

    1、他可以是任何类型,无论是预定义类型还是用户定义类型

    2、和所有变量一样,字段用来保存数据,并具有如下特征:

      它们可以被写入;

      它们可以被读取;

    相关文章

      网友评论

          本文标题:C#图解教程笔记20170717

          本文链接:https://www.haomeiwen.com/subject/pezwtxtx.html