У цьому огляді ми познайомимося з новою мовою програмування C # (читається C Sharp - сі-дієз, тобто нота "сі", підвищена на півтону), недавно оголошеним фірмою Microsoft. У читача може виникнути цілком логічне запитання: навіщо потрібен ще одну мову програмування, коли у Microsoft є і Basic, і C / C ++, і Java, не кажучи вже про підмножині Visual Basic - Visual Basic for Application і скриптових мовах VBScript і JScript?
За словами менеджерів фірми Microsoft, мова C # створювався в першу чергу для розробників, які використовують C і С ++, щоб дозволити їм більш ефективно створювати Internet-додатки. Так, C # буде тісно інтегрований з мовою XML, протоколом SOAP і іншими Web-технологіями (на момент написання даного огляду деталі цієї інтеграції оголошені не були). Очевидно, що реалізувати будь-які нові можливості на рівні мови в мовах С / С ++ не можна, так як в цьому випадку був би порушений ANSI-стандарт; мова Visual Basic не надає ряду можливостей С / С ++; з мовою Java також неможливо звертатися як зі своїм власним. Тому фірма Microsoft вибрала інший шлях - створила нову мову.
Мова C # - це простий об'єктно-орієнтована мова, що нагадує С ++ і Java, але при цьому в ньому немає деяких конструкцій. Наприклад, C # не підтримує макроси, шаблонів, директив #include. а також різних способів доступу до об'єктів - замість того, щоб думати над тим, коли використовувати точку (.), посилання (->) або оператор області дії (::), ви завжди використовуєте точку. Для того щоб знизити можливість внесення помилок в створюваний код, в C # введений механізм збору сміття (garbage-collection): вас більше не повинні турбувати покажчики, посилання або витоку пам'яті - за всім цим стежить виконує ядро мови. У мові немає глобальних змінних, множинного спадкоємства і ряду інших конструкцій.
Мова C #, разом з Visual Basic (Visual Basic .NET, що об'єднав в собі функціональність Visual Basic і VBScript), Visual C ++ і скриптовою мовою JScript (JScript .NET), буде входити до складу Microsoft Visual Studio .NET (раніше називалася Visual Studio 7 ). Всі ці мови забезпечують доступ до платформи Microsoft .NET (раніше ця платформа називалася Next Generation Windows Services NGWS), яка містить загальне виконує ядро і велику бібліотеку класів. Ядро працює на рівні спільної мови, відомого під назвою Common Language Subset (CLS, також називається Common Language Specification), який забезпечує взаємодію між усіма мовами і бібліотекою класів. Для розробників це означає, що C # буде мати доступ до всіх засобів, знайомим розробникам на Visual Basic і Visual C ++.
За традицією, заведеною ще Керніганом і Річі в далеких уже 70-х, прийнято знайомитися з можливостями мови, написавши програму, що виводить на екран фразу «Hello, world». Мовою C # така програма виглядає наступним чином:
Давайте детально розглянемо кожен рядок цієї програми.
Директива using System вказує на те, що ми звертаємося до простору імен (namespace) System. надається ядром Microsoft .NET. Це простір імен містить клас Console. використовуваний в методі Main (). Простори назв служать для логічної організації елементів бібліотеки класів. Директива using дозволяє використовувати члени простору імен більш простим чином. Так, нижче ми використовуємо виклик Console.WriteLine. який є скороченим варіантом виклику System.Console.WriteLine. Відзначимо, що ця концепція схожа з директивою Use в мові Object Pascal.
Рядок «Hello, world» виводиться на екран методом WriteLine класу Console. Тут ми використовуємо єдину бібліотеку класів, доступну з C #, Visual Basic і Visual C ++. Мова C # не має власної бібліотеки класів.
Програми на C # зберігаються в файлах з розширенням .cs - наша програма може бути збережена в файлі hello.cs, будучи скомпільованій пакетним компілятором csc:
csc hello.cs
перетвориться в виконуваний файл hello.exe. запуск якого на виконання призведе до висновку рядка «Hello, world» на екран.
Після того як ми отримали деяке уявлення про мову C #, давайте розглянемо його основні конструкції більш докладно.
типи даних
У мові C # існує два різновиди типів даних: значимі типи (value types) і посилальні типи (reference types). До значущим типам ставляться прості типи (char. Int. Float), що перераховуються типи (enum) і структури (struct), тобто типи, безпосередньо містять дані. Посилальними типами є класи, інтерфейси, масиви (підтримуються одно- і багатовимірні масиви) і делегати: типи, що зберігають посилання на об'єкти.
Для завдання нових типів даних розробники можуть використовувати перерахування і структури, а також класи, інтерфейси і делегатів.
Визначені типи даних
Мова C # містить ряд зумовлених значущих і довідкових типів, більшість з яких прийшло з мов С / С ++.
До визначеним значущим типам ставляться цілочисельні типи (зі знаком - sbyte. Short. Int. Long і без знака - byte. Ushort. Uint. Ulong), числа з плаваючою точкою (float і double) і типи bool. char і decimal.
Зумовлені посилальні типи представлені типами object і string. Тип object є універсальним базовим типом для всіх інших типів.
Для кожного визначеного типу існує ключове слово, якому відповідав би системне визначення. Наприклад, ключовим словом int відповідає визначення System.Int32.
У мові C # всі типи даних, включаючи і значущі типи, можуть розглядатися як об'єкти. Це дозволяє викликати методи навіть таких примітивних типів, як int. наприклад:
Тут ми використовуємо метод ToString для виведення значення константи типу int. Погодьтеся, що це нагадує мову Java.
Зовсім недавно компанія Cougar представила нову серію блоків живлення для традиційних ПК - VTX, орієнтовану на користувачів з обмеженим бюджетом. У цьому огляді буде розглянута модель Cougar VTX600, яка завдяки своїм характеристикам буде однією з найбільш затребуваних в цій лінійці блоків живлення
На щорічному заході Capsaicin SIGGRAPH в Лос-Анджелесі компанія AMD зміцнила свої позиції на ринку ПК класу high-end з новими процесорами Ryzen Threadripper і GPU «Vega»
Для простого і зручного побудови мереж рядовими користувачами компанія ZyXEL випустила чергову версію свого Інтернет-центру для підключення до мереж 3G / 4G через USB-модем з точкою доступу Wi-Fi - ZyXEL Keenetic 4G III, який ми і розглянемо в цьому огляді
До своєї і так великій родині роутерів і маршрутизаторів фірма ASUS недавно додала дві вельми цікаві моделі: флагманську 4G-AC55U і більш просту 4G-N12. У даній статті буде розглянута флагманська модель ASUS 4G-AC55U
Молода, але амбіційна компанія KREZ на початку цього року випустила нову, оригінальну модель ноутбука KREZ Ninja (модель TM1102B32) під керуванням Windows 10. Оскільки цей комп'ютер має поворотний екран, він може служити універсальним рішенням - його можна з успіхом використовувати і для роботи, і для навчання, і для ігор
Якщо ви часто друкуєте фотографії та вже втомилися міняти картриджі в своєму принтері, зверніть увагу на МФУ Epson L850. Великий ресурс витратних матеріалів, чудова якість відбитків, найширший набір функціональних можливостей - ось лише деякі з переваг даної моделі