zoukankan      html  css  js  c++  java
  • NET基础课--NET的一些概念0

    0.CIL--公共中间语言

    VC++:经过预编译,编译,汇编和链接生成本地可执行代码,支持它运行的是OS和本地cpu指令集。

    C#:    在.net框架下类似c#的高级语言经过编译生成的文件叫程序集,后缀名.dll 和 .exe。程序集由CIL语言描述。利用IL DASM查看程序集

              时你会发现vb和c#编写编译生成的CIL代码是一致的。由于程序集运行受NET运行时管理所以CIL代码也叫托管代码。

    注意:CIL是一种语言,可以直接写代码,只不过比c#低级一些,编写起来效率低。

    1.BCL--基础类库

    举例:新建一个控制台项目,删除引用中所有的引用,你会发现你的helloword照样可以打印, 这是因为console类定义在基础类库中,所属程序集是mscorlib.dll.这个程序集总是自动引用且和CIL语言紧密关联。
    那string类型呢?string在代码中蓝色呈现你猜测应该是c#关键字即内置类型,但是按下f12你会发现它定义在mscorlib中。
    所以才有这样的对应关系:c#中关键字是CIL类型的别名。
    CIL类型                     c#关键字
    System.Byte              byte

        基元类型:编译器直接支持将语言关键字类型转换为CIL类型的类型如int  byte等。

    2.FCL--框架类库

    BCL是FCL的一部分。

    FCL分层:最内层有BCL的大部分组成,对.NET运行时和CIL等进行支持,例如 基元类型,线程 应用程序域等

                 中间一层对系统功能的封装,例如文件系统,网络连接,图形图像等

                 最外层是各种类型的应用程序 如wpf,wcf,asp.net等。

    3.CTS--公共类型系统

       CTS是CIL语言的规范或规则定义。CIL实现了CTS的全部功能。c#只实现了CTS的一部分功能。

    4.CLS--公共语言规范

       不同语言编写的程序集互操作的基础规范。可以使用特性CLSCompliant应用在类上,以便编译时检查程序集是否符合CLS。

        特性:[assembly:CLSCompliant()]

       如果你是组件开发人员建议遵守这个规范来开发组件。

  • 相关阅读:
    Cola:一个分布式爬虫框架
    MichaelBoselowitz/pygit2-examples: Examples of some "porcelain" git commands implemented with python bindings (pygit2) to the libgit2 library.
    https://github.com/mlzboy/spider-impl.git
    Installation and Status — CFFI 1.5.2 documentation
    CENTOS 6.5 安装 Python 2.7 总结
    CENTOS 6.5 安装 Python 2.7 总结
    Create a commit using pygit2
    Create a commit using pygit2
    Create a commit using pygit2
    LindDotNetCore~docker里图像上生成中文乱码问题
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4963955.html
Copyright © 2011-2022 走看看