国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
什么是CTS、CLS和CLR_爛筆頭
2008-12-17 09:31
CTS、CLS和CLR是.NET框架的基本概念,但往往成為程序員們忽視的部分。清楚理解三者的概念,有助于.NET程序員編寫高效安全的.NET程序。
所涉及到的知識點
•   .NET的基本概念
•   CLS、CTS和常用語言的關(guān)系
分析問題
   CLR的全稱是公共語言運行庫(Common Language Runtime),讀者可以把CLR理解為一個包含運行.NET程序的引擎和一堆符合公共語言基礎(chǔ)結(jié)構(gòu)的類庫的集合。CLR是一個規(guī)范的實現(xiàn),我們開發(fā)的 幾乎所有的.NET程序都基于CLR的類庫來實現(xiàn),并且運行在CLR提供的運行引擎之上。所謂.NET框架,指的就是公共語言運行庫。
公共語言基礎(chǔ)(CLI)是微軟公司向ECMA提交的一份語言和數(shù)據(jù)格式規(guī)范,CLR是目前為止唯一一個公共語言基礎(chǔ)的實現(xiàn)版本。
CTS 的全稱是通用類型系統(tǒng)(Common Type System)。前文已經(jīng)介紹了公共語言基礎(chǔ)(CLI)的概念,微軟公司提交的CLI規(guī)范,包括了公共類型系統(tǒng)(CTS)、公共中間語言(CIL)、底部 文件格式以及元數(shù)據(jù)格式等。公共類型系統(tǒng)定義了一個能夠在CLR上運行的語言規(guī)范。盡管有很多語言本身不符合CTS規(guī)范,但是通過加強(qiáng)編譯器,改變語言附 加規(guī)范等手段,使得許多語言能夠編寫出能在CLR上運行的程序。
一種語言編寫的程序編譯能夠在CLR上運行,并不代表這種語言本身完全符合CTS的規(guī)范。例如C++語言,仍然保持了其不符合CTS規(guī)范的部分,并且在編譯時把這部分不符合CTS的代碼編譯成原始代碼而非中間代碼。
最后來看一下CLS的概念。公共語言規(guī)范(CLS)是CTS的一個子集,它定義了希望編寫在.NET平臺上運行的程序的語言所需符合的最小規(guī)范。正因為.NET允許由不同語言編寫的程序一起執(zhí)行,所以才制定出CLS規(guī)范,用以避免不同語言特性產(chǎn)生的錯誤。
為了更直觀地理解CLS,來看這段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; //這是一個私有成員,所以不違反CLS規(guī)范
        public CLS()
        {
            i=0;
        }
        static void Main(string[] args)
        {
        }
        //這里不符合CLS規(guī)范,uint在CLS中沒有定義
        public uint GetI()
        {
            return i;
        }
    }
}
在 代碼2-1中,程序通過CLSCompliantAttribute特性來申明CLS類型需要符合CLS規(guī)范。C#中的uint類型在CLS中沒有對應(yīng)的 類型,所以uint是不符合CLS的語言部分。在CLS類的一開始,程序定義了一個uint類型的私有成員變量i,這里并沒有造成CLS類不符合CLS規(guī) 范,因為私有變量只對類內(nèi)部可見。而之后程序定義了一個返回uint類型的公共方法,這里造成了整個CLS類型不符合CLS規(guī)范。編譯這段代碼,會得到以 下警告:
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)系
答案
公共語言運行庫(CLR)是一個CLI的實現(xiàn),包含了.NET運行引擎和符合CLI的類庫。
通用類型系統(tǒng)(CTS)包含在微軟公司提交的CLI規(guī)范中,定義了一個可以在CLR上運行的類型規(guī)范。
公共語言規(guī)范是CTS的一個子集,定義了所有面向.NET的程序需要符合的最小規(guī)范集。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[你必須知道的.NET] 第七回:品味類型---從通用類型系統(tǒng)開始
C++/CLI簡介(什么是C++/CLI) -------C++/CLI 編程系列一 - ...
.Net Framework
全面認(rèn)識.NET框架(一)
CLR VIA C#之旅(1):品味細(xì)節(jié),CLR的執(zhí)行模型
C#學(xué)習(xí)筆記(一)——軟件構(gòu)建與.NET平臺
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服