ПредишенСледващото

Както е известно, в различни програмни езици, същите програмни конструкции се изразяват в уникалната си, специфичен начин за конкретен език. Например, в C # низ конкатенация определен от знака "плюс" (+) и VB обикновено се използва за тази амперсанд (). Дори в случай на изразяване в два различни езика, същите програмни идиоми (напр функции, които не връщат стойност), че е много вероятно, че на пръв поглед синтаксис ще изглежда много по-различно.

Както вече беше посочено, тези малки вариации в синтаксиса за .NET среда не са значителни, поради факта, че на съответния компилатор (в този случай - csc.exe и vbc.exe) генерира подобен набор от CIL-инструкции. Въпреки това, езици също могат да бъдат различни, както и на общото ниво на функционалност. Например, в който и да е от езиците .NET може или не може да бъде ключовата дума, за да представляват неподписани данни, както и подкрепа от видовете индекси. Поради всички тези възможни варианти тук би било чудесно да има на разположение на някои от критериите за подпомагане, които ще трябва да отговори на всички езици .NET поддръжка.

CLS (Common Language Specification - общи спецификации за програмни езици) е просто набор от правила, които описват подробно минималния и пълния набор от функции, които задължително трябва да подкрепи всеки отделен .NET-компилатор за генериране на такава програма код, който може да бъде обслужван от CLR и който в същото време може да бъде последователен начин за достъп до всички езици, които са насочени платформата .NET. В много отношения, CLS може да се счита подмножество на функционалността е дефинирано в CTS.

В крайна сметка, CLS е един вид набор от правила, които да бъдат следвани от компилатори създатели, ако искате, така че продуктите им биха могли да работят без проблеми в света на .NET. Всеки един от тези правила е просто име (например "CLS Правило № 6") и описва как действията му за тези, които създават компилатори и тези, които (по някакъв начин), ще си взаимодействат с тях. Най-важното нещо в CLS обикновено 1. посочва, че CLS правила се прилагат само за онези части от типа, които се предоставят извън събрание, в която са определени.

Това правило може (и трябва) да се направи заключението, че всички други правила в Центъра за либерални стратегии не са предмет на логиката, приложена към изграждането на вътрешните работни части като .NET. Единственият аспект на вида, което трябва да съответства на Центъра за либерални стратегии, самите те са членове на определението (т.е. правилата за наименуване, параметри и да се върнете видове). Като част от члена на изпълнение логика може да се използва всякакъв брой и не се съгласи с CLS техники, както към външния свят, той няма да играе никаква роля.

Този пример показва, че CLS работи по два начина:

Индивидуални компилатори не са достатъчно мощни, за да поддържа всички функции на .NET - това представлява предизвикателство за разработчиците на други езици за програмиране компилатори, насочени към .NET.

Ако ограничите класовете само CLS-съвместими означава, че код, написани на друг език за програмиране, да могат да използват тези класове.

Красотата на тази идея е, че ограниченията в използването на CLS-съвместими средства, наложено само публични и защитени членове на класове и обществени класи. В рамките на реализацията на частни уроци сте свободни да напишете код, не е съвместим с CLS, защото кода на другия комплект (управляван код единици) във всеки случай, не разполага с достъп до тази част от кода.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!