Явна і неявне перетворення в c #

Всім доброго часу доби, на зв'язку Олексій Гулинін. У минулій статті ми дізналися, що таке .NET Framework. У даній статті я б хотів поговорити про явне і неявне перетворення в C #. C # є строго універсальна мова. Тип змінної потрібно вказувати при її ініціалізації. Іноді виникає необхідність перетворити змінну в інший тип. У C # існує явне і неявне перетворення типів (implicitly convert). Неявне перетворення характерно, в основному, для числових типів: byte, short, int, long, float, double. Як це розуміти? Тип даних byte неявно перетворюється в типи даних short, int, long. Тип даних short неявно перетворюється в типи даних int, long. Int неявно перетворюється в long, float неявно перетворюється в double. А в double взагалі всі ці типи неявно перетворюються.
Давайте на прикладі розберемо неявне перетворення типів:
Чому таке перетворення можливо. Відповідь криється в тому, що діапазон значень long перекриває int (тобто в long можна записати значення будь-якого int), діапазон значень short перекриває byte і т.д.
Тут ми бачимо, що перетворення пройшло і повідомлення виводяться. Однак зворотне перетворення не працює, тобто long неявно НЕ перетворюється в int. short в byte і т.д. При спробі виконати таке перетворення компілятор посвариться:
Компілятор каже, "що неявне перетворення short в byte неможливо. Явна перетворення існує (ви пропустили cast?)". На етапі компіляції компілятор не знає, яке значення буде зберігатися в змінних b (типу byte) і s (типу short). а не будь-яке число типу short можна покласти в byte. Можна написати таке значення short. яке не влізе в byte.
Тому і виходить помилка на етапі компіляції.
З неявним перетворенням типів ми розібралися, давайте тепер поговоримо про явне перетворення. Оператор, який робить це називається cast. в круглих дужках перед змінної вказується тип даних, до якого ця змінна повинна перетворюється. приклад:
Існує ще один спосіб перетворення даних за допомогою класу Convert. в якому є багато статичних методів (з префіксом To). Дані статичні методи виконують перетворення. Переробимо попередній приклад:
Тут я додав перетворення long в int. Тут є кілька статичних методів: ToInt16 (), ToInt32 (), ToInt64 (). Розберемо, що означають ці цифри на прикладі методу ToInt32. Тип даних int займає 4 байта (нам і потрібно для зберігання цієї змінної 4 байта), а це 32 біта (4 байта * 8 (в одному байті 8 бітів) = 32 біта).
Також зазначу, що існує універсальний метод ToString (). який будь-який тип даних переводить в рядок. А що якщо ми хочемо рядок перевести в число? Це потрібно тоді, коли користувач щось вводить. Тут допоможе метод Parse. Розглянемо на прикладі:
Все добре, але якщо користувач введе не числиться, а яку-небудь нісенітницю, то програма аварійно завершиться. Щоб цього не сталося скористаємося методом TryParse (). Даний метод перевіряє чи можливо виконати перетворення, і якщо можливо, то повертає істину. Переробимо наш код:
В якості домашнього завдання реалізуйте такий алгоритм: виводити повідомлення користувачу «Введіть ціле число» до тих пір поки він не введе ціле число. Іншими словами, якщо він ввів не ціла кількість, то програма не повинна завершуватися і повідомлення повинно знову з'являтися.
У даній статті ви дізналися, що таке конструктори в C #.
Ще статті.
- Структури C #

- Розмір каталогу C #

- Що таке .NET Framework?

- Інструменти для побудови .NET-додатків

- Перевантажені методи C #
