Основне меню  

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

Калькулятор расчета пеноблоков смотрите на этом ресурсе
Все о каркасном доме можно найти здесь http://stroidom-shop.ru
Как снять комнату в коммунальной квартире смотрите тут comintour.net
   

Реклама в мережі  

   

Статистика  

Користувачі
1
Статті
184
Перегляди статей
733502
   

Пошук по сайту  

   

Ми знаходимось тут  

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Посібник по C#  

 Вивчаємо сучасну мову  програмування C# 7.0

ПРОГРАМУЄМО в VISUAL STUDIO 2017

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 1000 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Відеокурс по С++  

   

Рекомендуємо:  

   

Типи посилання і типи значень, які розглядалися в попередньому уроці, мають ще одну відмінність.Типи посилання можуть приймати значення null, типи значень - ні.

Null вказує на те, що значення невідомо, чи, іншими словами, значення немає.

Значення null ви вже зустрічали, думаю, не раз. Наприклад, коли оголошували масив і намагалися працювати з ним, не створивши його за допомогою оператора new. Таке посилання (ім'я) мала значення null, і видавався виняток NullReferenceException.

У мові Сі-Шарп всі типи даних діляться на дві категорії -  типи посилання, і типи значень. Вони відрізняються способом зберігання в пам'яті, продуктивністю і іншим. На цьому уроці ми поговоримо, що це все означає, а також про передачу параметрів в метод по посиланню (ключові слова ref і out).

Типи значень

Цю категорію також називають структурними типами. Типи значень зберігаються в стеці. Стек - це область пам'яті, яка використовується для передачі параметрів в методи і зберігання визначених у межах методів локальних змінних. Дані змінної типу значення зберігаються в самій змінної.

Перерахування (Enumeration) - це визначений користувачем цілочисельний тип, який дозволяє уточняти набір допустимих значень, і призначити кожному зрозуміле ім'я. Для оголошення перерахування використовується ключове слово enum. Загальна структура оголошення перерахування виглядає так:

enum [ім'я_перерахування] { [ім'я1], [ім'я2], … };

Наприклад, створимо перерахування Directions, яке буде відповідати напрямам руху:

enum Directions { Left, Right, Forward, Back };

Оголосивши таким чином перерахування, кожній символічно позначеній  константі присвоюється цілочисельне значення, починаючи з 0 (Left = 0, Right = 1 ...). Це цілочисельне значення можна задавати і самому:

 enum Directions { Left, Right = 5, Forward = 10, Back };

Back в цьому прикладі буде мати значення 11.

В 9 уроці  була розглянута робота з рядками в Сі-Шарп, зараз же ми поговоримо про їх форматування. Потреба у форматуванні рядків виникає досить часто (наприклад певна кількість знаків після коми для числа, або дата в потрібному форматі і т.д.).

У Сі-Шарп задавати форматування володіють такі методи:

- System.String.Format
- Console.WriteLine
- StreamWriter.Write
- ToString

Методи WriteLine і Write використовуються для виведення інформації в консоль, і при цьому дають можливість відформатувати результат. Метод Format класу String призначений конкретно для форматування. Він повертає відформатований рядок. Різниці між самим форматуванням для цих методів немає.
Форматування в методі ToString можна задати тільки для чисел і дат.

На цьому уроці ми розглянемо з вами дуже потужний, широко використовуваний інструмент для обробки тексту - регулярні вирази.

Регулярний вираз - це якийсь шаблон, складений з символів і спецсимволов, який дозволяє знаходити підрядки відповідні цим шаблоном в інших рядках. Спецсимволов і різних правил їх комбінування є дуже багато, тому регулярні вирази можна навіть назвати таким собі окремою мовою програмування. Ті, хто користувався пошуком по файлах в Windows можуть знати, що для того щоб знайти файли тільки заданого розширення, задається шаблон типу «* .txt». Тут «*» - спецсимвол, який означає будь-які імена файлів. Так ось регулярні вирази надають подібний механізм.

Як відомо, в Сі-Шарп всі класи є спадкоємцями базового класу object. У ньому є три віртуальних методи - ToString, Equals і GetHashCode. На цьому уроці ми поговоримо з вами про останні два методи, а також про оператор «==».

Скажу відразу, що питання різниці між оператором рівності «==» і методом Equals є класичним питанням на співбесіді на вакансію програміста Сі-Шарп.

Відомо, що в Сі-шарп існує ряд операторів для роботи з вбудованими типами даних. Це оператори «+», «-», «!», «==», «! =» І т.д. Наприклад, бінарний оператор «+» виконує операцію додавання над чисельними типами даних. Цей же самий оператор над рядками виконує конкатенацію (склеювання двох рядків). Це відбувається тому, що оператор «+» перевантажений в класі String.

Простими словами, перевантаження оператора - це реалізація свого власного функціоналу цього оператора для конкретного класу.

Перевантаження оператора реалізується схожим способом на перевантаження методів. Тут використовується ключове слово operator. Загальна структура перевантаження операторів має наступний вигляд:

Перевантаження унарного  * оператора:

public static [повернений тип] operator [оператор] ([тип_операнда] [операнд])

{

  // функціонал оператора

}

Перевантаження бінарного * оператора:

public static [повернений тип] operator [оператор] ([тип_операнда1] [операнд1], [тип_операнда2] [операнд2])

{

  // функціонал оператора

}

На цьому уроці ми поговоримо про ще один з базових принципів ООП - інкапсуляції.

Скажу відразу, що ця тема складна для розуміння новачкові, і для гарного освоєння теми, прочитати цей урок або будь-який інший недостатньо. Розуміння інкапсуляції прийде з практикою. На цьому уроці я постараюся направити вас на правильне мислення.

Інкапсуляція - це приховування реалізації об'єкта від кінцевого користувача, яке в Сі-шарп здійснюється за допомогою модифікаторів доступу (private, public ...). Кінцевим користувачем об'єкта тут виступає або об'єкт спадкоємець, або програміст.

Коли ми оголошуємо якийсь член класу приватним, і створюємо об'єкт такого класу, доступ до цього члену закритий для програміста, це і є прихованням реалізації.

А тепер давайте будемо розбиратися, навіщо потрібна інкапсуляція, навіщо щось приховувати. Уявімо що об'єкт це яка-небудь річ (телефон, автомобіль ...), так ось інкапсуляція дозволяє створити корпус цієї речі. Візьмемо для прикладу мобільний телефон. У нього є різні кнопки, інші елементи інтерфейсу, і те, що всередині (схеми, з'єднання ...). Якщо порівнювати з об'єктом в програмуванні, то елементи інтерфейсу це публічні методи, а те що всередині - приватні члени об'єкта. Коли ми натискаємо яку-небудь кнопку на телефоні, нам немає необхідності знати, які при цьому процеси відбуваються всередині телефону, ми чекаємо тільки результату. У програмуванні ми викликаємо якийсь метод, цей метод може викликати інший, внутрішній, допоміжний метод, і в результаті ми отримуємо результат. Цей допоміжний метод немає сенсу викликати безпосередньо, це може зініціювати якийсь збій в програмі, тому доступ до нього варто обмежити.

На цьому уроці ми розглянемо з вами ще один спосіб реалізації поліморфізму в Сі-шарп - перевантаження методів.

Перевантаження методів - це оголошення в класі методів з однаковими іменами при цьому з різними параметрами.

Маючи якийсь метод, щоб його перевантажити, інший метод з таким же ім'ям повинен відрізнятися від нього кількістю параметрів та / або типами параметрів. Відмінності тільки типами повертаються значень методами недостатньо для перевантаження, але якщо методи відрізняються параметрами, тоді перенавантажувані методи можуть мати і різні типи повертаються значень.

Інтерфейси - це ще один інструмент реалізації поліморфізму в Сі-шарп. Інтерфейс являє собою набір методів (властивостей, подій, індексаторів), реалізацію яких повинен забезпечити клас, який реалізує інтерфейс.

Інтерфейс може містити тільки сигнатури (ім'я та типи параметрів) своїх членів. Інтерфейс не може містити конструктори, поля, константи, статичні члени. Створювати об'єкти інтерфейсу неможливо.

Оголошення інтерфейсу

Інтерфейс - це одиниця рівня класу, він оголошується за межами класу, за допомогою ключового слова interface:

interface ISomeInterface

{

   // Тіло інтерфейсу

}

* Імена інтерфейсів прийнято давати, починаючи з префіксу «I», щоб відразу відрізняти де клас, а де інтерфейс.

Усередині інтерфейсу оголошуються сигнатури його членів, модифікатори доступу вказувати не потрібно:

interface ISomeInterface

{

   string SomeProperty {get; set; } // Властивість

 

   void SomeMethod (int a); // Метод

}

   

Поділіться з друзями

 
   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test

Онлайн тести  для програмістів: https://proghub.ru/


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt