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

Явна і неявне перетворення в 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 #
  • Явна і неявне перетворення в c #
    Розмір каталогу C #
  • Явна і неявне перетворення в c #
    Що таке .NET Framework?
  • Явна і неявне перетворення в c #
    Інструменти для побудови .NET-додатків
  • Явна і неявне перетворення в c #
    Перевантажені методи C #