C#
==

C# (дыбысталуы си-шарп) — Объектіге-бағытталған бағдарламалау тілі. 1998—2001 жылдары Microsoft компаниясында  Андерс Хейлсбергтің басшылығымен бір топ инженерлермен Microsoft .NET Framework платформасына қосымшаларды құрастырушы тіл ретінде жасалған. Кейіннен ECMA-334 және ISO/IEC 23270 тәрізді стандартталған.

C# C-ұқсас синтаксисі бар тілдер отбасына жатады, оның синтаксисі C++ және Java-ға ең жақын. Тіл статикалық типизацияға ие, полиморфизмді, операторлардың шамадан тыс жүктелуін (оның ішінде айқын және айқын емес типті келтіру операторлары), делегаттар, атрибуттар, оқиғалар, қасиеттері, жалпыланған типтері мен әдістері, итераторлар, тұйықталуды қолдайтын анонимдік функциялар, LINQ, ерекшеліктер, XML форматындағы түсініктемелерін қолдайды.

C++, Pascal, Модульдер, Smalltalk және, әсіресе, Java — С# тілдерінен көп нәрсені қабылдай отырып, оларды пайдалану тәжірибесіне сүйене отырып, бағдарламалық жүйелерді жасау кезінде өзін проблемалы ретінде көрсеткен кейбір модельдерді жоққа шығарады, мысалы, C# C++ және кейбір басқа тілдерге қарағанда, көптеген кластардың мұрагерлігін қолдамайды (сонымен қатар интерфейстердің көптеген мұрагерлеріне жол беріледі).

Тілдің ерекшеліктері
====================

C# CLR үшін қолданбалы деңгейдегі бағдарламалау тілі ретінде әзірленген және ең алдымен CLR мүмкіндіктеріне байланысты. Бұл, ең алдымен, BCL көрсететін c# типті жүйеге қатысты. Тілдің қандай да бір мәнерлі ерекшеліктерінің болуы немесе болмауы нақты тілдік ерекшелік тиісті CLR конструкцияларына таратылуы мүмкін бе? Осылайша, 1.1-2.0 нұсқасынан CLR дамуымен c өзі де айтарлықтай байытылды; мұндай өзара іс-қимылды одан әрі де күту керек (алайда, бұл заңдылық платформаның кеңеюіне сүйенбейтін тілдің кеңеюін білдіретін С# 3.0 шығуымен бұзылды). CLR C# және өзге де .NET-ке сүйеніп жазылған программаларға, басқалардан артық <<классикалық мүмкіншіліктер>> береді. Мысалы, <<қоқыс жинау>> әлі де С++-та, С#-тағыдай жүзеге асырылмаған. 

Тілдің атауы
============

Атауы "Си шарп "(ағылш. sharp-диез) латын әрпі c нотасына дейін, ал диез белгісі (ағылш. sharp) тиісті дыбыс нотасын жартылай тонға көтеруді білдіреді, бұл C++ тілінің атауына ұқсас, мұнда "++" айнымалы инкрементті білдіреді. Атауы C → C++ → C++++(C#) тізбегі бар ойын болып табылады, себебі "#" таңбасын 4 "+"таңбасынан тұратын етіп көрсетуге болады.

(Стандартты қаріптер, браузерлер және т.б.) және диез белгісі компьютердің стандартты клавиатурасында ұсынылмауына байланысты, бағдарламалау тілінің атын жазу кезінде (#)[7] тор белгісін қолданады. Бұл келісім c# ECMA-334 тілінің ерекшелігінде көрсетілген. Дегенмен, іс жүзінде (мысалы, жарнаманы орналастыру және қорапты дизайнда[9]) Microsoft диез белгісін пайдаланады.

Бағдарламалау тілдерінің атауларын аудару қажет емес, сондықтан тіл транскрипцияны қолдана отырып, "Си шарп"деп аталады.

Артықшылығы
===========

Бұл тіл барлық программалауға объектілі-бағытталған тәсілді қолданады. Бұл дегеніміз, пән саласы негізінде абстрактілі конструкцияларды сипаттау, содан кейін олардың арасында өзара іс-қимылды жүзеге асыру қажет. Бұл тәсіл үлкен танымалдылыққа ие, өйткені барлық ақпаратты басымызда ұстамауға, қара жәшіктің принципі бойынша жұмыс істеуге мүмкіндік береді: кіріс деректерін берді -> Сиқыр -> Пайда. 
Сондай-ақ, тілде артықшылығы мол, ол программистің ауыр өмірін әлсіз етеді. Мыңдаған код жолдарын жазудың орнына, дайын құрылымды ғана пайдаланады, ал компилятор барлық жұмысты өзі жасайды. Бірақ кейбір мұндай құрылымдар өнімділік тұрғысынан ең оңтайлы емес. Бірақ мұның бәрі кодтың ыңғайлы болуы және жоғары даму жылдамдығы есебінен жабылады.

Мұның бәрі .NET Framework платформасында жұмыс істейді. Көптеген талғампаз адамдар үшін бұл бағдарлама іске қосылуы үшін компьютерге орнату қажет, бірақ бұл айтарлықтай тереңірек. C# тілінде жазған код аралық тілге (IL) таратылады, ол өз кезегінде, қолданба (JIT) орындау кезінде компьютеріңізде машина кодына айналады. Ал мәні, әр түрлі тілдерде бір жобаны қайта оқытуға тура келмейді. Бірақ оны іс жүзінде қолдануын жоқ. Аралық кодтың соңғы компиляциясы нақты машинада тірі орындалғандықтан, онда процессордың арнайы командаларын пайдалану арқылы өнімділіктің артуы мүмкін.

Кемшілігі
=========

Бұл тіл .NET JIT-компиляция тұжырымдамасын пайдаланады. Бұл бағдарлама қажет болған жағдайда тікелей бағдарлама жұмыс кезінде машиналық кодтарға жинақталатынын білдіреді. Бір жағынан, бұл әрине күшті, бірақ екінші жағынан, іске қосу кезінде өте ауыр тежегіш болуы мүмкін.

C# жаппай таралған тіл емес. Көптеген бағдарламашылар Delphi немесе PHP-ден басқа ештеңе көрген емес, шағын қалаларда жұмыс іздеуге өте елеулі шектеулер қояды коммерциялық Enterprise саласында шоғырланған. Сонымен қатар, C# ең алдымен Windows-пен байланысты. Жақын болашақта бір нәрсе өзгереді және Windows бәрі де нарықта үстем болады, бірақ әлі де аз тәуекел, әсіресе Windows 10 жаңартулары бар соңғы жалған екенін ескере отырып, қалады.

"Сәлем, әлем"
=============

```
using System;
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Сәлем, әлем!!!");
        }
    }

```