C Sharp

**C#** — програмски јазик создаден од Microsoft под иницијатива на Microsoft. NET, а потоа одобрен како стандарден од Ecma (ECMA-344) и ISO (ISO/IEC 23270). C# е еден од програмските јазици дизајнирани за Common Language Infrastucture.
C# е едноставен, модерен, повеќенаменски програмски јазик. Тимот кој го создаде овој програмски јазик е предводен од Andreas Hejlsberg, дизајнер на Борландовиот Turbo Pascal. C# има објектно-ориентирана синтакса која се заснова на C++. Во почетокот е именуван како Cool, што e всушност кратенка од “C-like Object Oriented Language”. Во јули 2000 година, кога Microsoft го објави проектот, на овој програмски јазик му беше дадено името C#.NET Framework 3.5 во 2007 година. Последна верзија е C# 7.0 која беше претставена во 2017 заедно со Visual Studio 2017.

### Дизајнерски цели:
•	C# е едноставен, модерен, повеќенаменски и објектно-ориентиран програмски јазик.

•	Јазикот е наменет за употреба во развојот на софтверските компоненти погоден за употреба во дистрибутираните средини.

•	Изворниот код за преносливост е многу важен, како и програмската преносливост, посебно за програмерите кои ги знаат програмските јазици C и C++.

•	Поддршката за интернационализација е многу важна.

•	C# е изработен така што ќе биди погоден за пишување апликации и за домашниот и за вградениот систем

•	C# апликациите се штедливи на меморија и потрошувачката на енергијата при нивната обработка, јазикот не е изработен за да се натпреварува во способноста при извршување и големината со програмскиот јазик C или со асемблерски јазик.

## Историја

За време на создавањето на јазикот од страна на .NET Framework, библиотеките беа оригинално напишани на јазик/компајлер наречен Simple Managed C (SMC). Во јануари 1999, Andres Hejlsberg формира тим за да изгради нов јазик кој со текот на времето бил наречен Cool, кој се потпирал на “C like Object Language”. Microsoft имал намера да го задржи името “Cool” како крајно име на јазикој. Со текот на времето проектот на .Net бил јавно објавен на Professional Developers Conference (професионалната развивачка конференција) во јули 2000. Јазикот бил преименуван во C#, а класичните библиотеки и ASP.NET биле влез во јазикот.
Дизајнерски управител и архитектски воодач на C# во Мicrosoft е Anders Hejlsberg, кој претходно беше замешан и со дизајнот на Turbo Pascal, CodeGear Delphi (порано Borland Delphi) и Visual J++.

ВЕРЗИИ:
За време на својот развој C# поминал низ следниве верзии:
* C# 1.0 ( јануари 2002 )
* C# 1.2 ( Април 2003 )
* C# 2.0 ( Ноември 2005 )
* C# 3.0 ( Ноември 2007 )
* C# 4.0 ( Април 2010 )
* C# 5.0 ( Август 2012 )
* C# 6.0 ( Јули 2015 )
* C# 7.0 ( Март 2017 )

Common Type System (CTS):
C# има обединет тип на систем. Овој обединет тип на систем е наречен Common Type System (CTS).
Обединет тип на систем ги вклучува сите типови, вклучувајќи ги и примитивните како integers, како подкласи на System Object class. На пример, секој тип наследува ТоString () метод. Од извршувачки причини, примитивните типови се внатрешно распределени во куп.
КАТЕГОРИИ НА DATATYPES (податоци):

CTS ги дели податоците во две категории:
1. Вредносни типови
2. Референтни типови

Вредносните типови се просто множество на податоци.Вредносните типови се извлечени од System.ValueType, секогас имаат стандардна вредност и секогаш можат да се создаваат и копираат. Недостатоци на вредносните типови се тоа што не можат да црпат податоци еден од друг (но можат да се поврзат) и не можат да имаат стандарден конструктор (не можат да бидат градени според некои принципи или критериуми). Примери за вредносни типови се некои од примитивните типови како што е int, float, char и System.DateTime.

За разлика од вредносните, референтните типови имаат претстава за референтен идентитет – секој пример на референтен тип по природа е различен од секој друг пример, дури и ако податоците на двата примери се исти. Тоа е резултирано од еднаквоста и нееднаквоста на референтните типови, Со тоа се тестира референтноста пред структурната еднаквост, пред операторите кои одговараат на тоа да бидат преоптоварени (како случајот со System.String). Во глобала, не е секогаш возможно да се создава пример на референтен тип, ниту да се копира постоечки пример или да се изврши вредносна споредба на два постоечки примери, иако посебни референтни типови можат да обезбедат такви сервиси со изложување на заеднички конструктор или со кореспондирачко поврзување (како ICloneable или IComparable). Примери за референтни типови се object (основна класа за сите други C# класи), System.String и System.Array.

Двата типа се растегливи со типови избрани од корисникот.

## Името на јазикот
Името "C sharp" беше инспирирано од музичка нотација каде sharp означува дека напишаната нота треба да биде пола степен повисоко. Ова е слично на јазичното име на C++ каде "++" означуваат дека променливата треба да биде зголемена за 1. Sharp симболот исто така се однесува на сврзување од 4 + симболи (групирани две по две загради) понатаму покажувајќи дека јазикот е пораст од C++.

Заради техничките ограничености на дисплејот (фонтовите,пребарувачите итн.) и фактот што sharp симболите (♯, U+266F, MUSIC SHARP SIGN) не се претставени на стандардната тастатура,бројниот знак (#, U+0023, NUMBER SIGN) беше одбран да го претставува остриот симбол во пишаното име од програмскиот јазик.
Оваа конвенција е одразена во ECMA-334 C# Language Specification. Како и да е, кога е практично да се направи така (на пример во рекламирањето или во бокс артот), Микрософт (анг. Microsoft) го користи одредениот музички симбол.
Шарп наставката е користен од голем број на други .NET јазици кои се варијанти од постоечките јазици вклучувајќи J# (.NET јазик исто направен од Микрософт кој е добиен од Јава 1.1) А# (од Ада) и функционалнот Ф#. Оригиналното применување од Еиффел за .NET беше наречено Еиффел#. Име коешто е сменето сега кога целиот еиффел јазик е поддржан. Наставката е исто така користен за библиотеки како што е Гтк# (.NET корица за ГТК+ и други ГНОМ библиотеки), Кокоа# (корица за Кокоа) и Qt# (.NET јазик поврзан за Qt китот со алатки).

Категорија:Програмски јазици
Категорија:Американски пронајдоци