久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

什么是CTS,、CLS和CLR_爛筆頭

 Alex847 2009-11-25
2008-12-17 09:31
CTS,、CLS和CLR是.NET框架的基本概念,但往往成為程序員們忽視的部分,。清楚理解三者的概念,,有助于.NET程序員編寫(xiě)高效安全的.NET程序。
所涉及到的知識(shí)點(diǎn)
•   .NET的基本概念
•   CLS,、CTS和常用語(yǔ)言的關(guān)系
分析問(wèn)題
   CLR的全稱(chēng)是公共語(yǔ)言運(yùn)行庫(kù)(Common Language Runtime),,讀者可以把CLR理解為一個(gè)包含運(yùn)行.NET程序的引擎和一堆符合公共語(yǔ)言基礎(chǔ)結(jié)構(gòu)的類(lèi)庫(kù)的集合。CLR是一個(gè)規(guī)范的實(shí)現(xiàn),,我們開(kāi)發(fā)的 幾乎所有的.NET程序都基于CLR的類(lèi)庫(kù)來(lái)實(shí)現(xiàn),,并且運(yùn)行在CLR提供的運(yùn)行引擎之上。所謂.NET框架,指的就是公共語(yǔ)言運(yùn)行庫(kù),。
公共語(yǔ)言基礎(chǔ)(CLI)是微軟公司向ECMA提交的一份語(yǔ)言和數(shù)據(jù)格式規(guī)范,,CLR是目前為止唯一一個(gè)公共語(yǔ)言基礎(chǔ)的實(shí)現(xiàn)版本。
CTS 的全稱(chēng)是通用類(lèi)型系統(tǒng)(Common Type System),。前文已經(jīng)介紹了公共語(yǔ)言基礎(chǔ)(CLI)的概念,,微軟公司提交的CLI規(guī)范,包括了公共類(lèi)型系統(tǒng)(CTS),、公共中間語(yǔ)言(CIL),、底部 文件格式以及元數(shù)據(jù)格式等。公共類(lèi)型系統(tǒng)定義了一個(gè)能夠在CLR上運(yùn)行的語(yǔ)言規(guī)范,。盡管有很多語(yǔ)言本身不符合CTS規(guī)范,,但是通過(guò)加強(qiáng)編譯器,改變語(yǔ)言附 加規(guī)范等手段,,使得許多語(yǔ)言能夠編寫(xiě)出能在CLR上運(yùn)行的程序,。
一種語(yǔ)言編寫(xiě)的程序編譯能夠在CLR上運(yùn)行,并不代表這種語(yǔ)言本身完全符合CTS的規(guī)范,。例如C++語(yǔ)言,,仍然保持了其不符合CTS規(guī)范的部分,并且在編譯時(shí)把這部分不符合CTS的代碼編譯成原始代碼而非中間代碼,。
最后來(lái)看一下CLS的概念,。公共語(yǔ)言規(guī)范(CLS)是CTS的一個(gè)子集,它定義了希望編寫(xiě)在.NET平臺(tái)上運(yùn)行的程序的語(yǔ)言所需符合的最小規(guī)范,。正因?yàn)?NET允許由不同語(yǔ)言編寫(xiě)的程序一起執(zhí)行,,所以才制定出CLS規(guī)范,用以避免不同語(yǔ)言特性產(chǎn)生的錯(cuò)誤,。
為了更直觀地理解CLS,,來(lái)看這段C#代碼:
代碼2-1 CLS規(guī)范:CLS.cs
using System;
using System.Collections.Generic;
using System.Text;
//申明C符合CLS規(guī)范
[assembly: CLSCompliantAttribute(true)]
namespace NET.MST.Second
{
    public class CLS
    {
        private uint i; //這是一個(gè)私有成員,所以不違反CLS規(guī)范
        public CLS()
        {
            i=0;
        }
        static void Main(string[] args)
        {
        }
        //這里不符合CLS規(guī)范,,uint在CLS中沒(méi)有定義
        public uint GetI()
        {
            return i;
        }
    }
}
在 代碼2-1中,,程序通過(guò)CLSCompliantAttribute特性來(lái)申明CLS類(lèi)型需要符合CLS規(guī)范。C#中的uint類(lèi)型在CLS中沒(méi)有對(duì)應(yīng)的 類(lèi)型,,所以u(píng)int是不符合CLS的語(yǔ)言部分,。在CLS類(lèi)的一開(kāi)始,程序定義了一個(gè)uint類(lèi)型的私有成員變量i,,這里并沒(méi)有造成CLS類(lèi)不符合CLS規(guī) 范,,因?yàn)樗接凶兞恐粚?duì)類(lèi)內(nèi)部可見(jiàn)。而之后程序定義了一個(gè)返回uint類(lèi)型的公共方法,,這里造成了整個(gè)CLS類(lèi)型不符合CLS規(guī)范,。編譯這段代碼,,會(huì)得到以 下警告:
C:\David\NET MST\第章\CLS.cs(23,21): warning CS3002: Return type of 'NET.MST.Second.CLS.GetI()' is not CLS-compliant
現(xiàn)在,讀者已經(jīng)理解了CLS和CTS的關(guān)系
答案
公共語(yǔ)言運(yùn)行庫(kù)(CLR)是一個(gè)CLI的實(shí)現(xiàn),,包含了.NET運(yùn)行引擎和符合CLI的類(lèi)庫(kù),。
通用類(lèi)型系統(tǒng)(CTS)包含在微軟公司提交的CLI規(guī)范中,定義了一個(gè)可以在CLR上運(yùn)行的類(lèi)型規(guī)范,。
公共語(yǔ)言規(guī)范是CTS的一個(gè)子集,,定義了所有面向.NET的程序需要符合的最小規(guī)范集。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多