Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Основи перетворення типів | Робота з типами даних
Основи C#
course content

Зміст курсу

Основи C#

Основи C#

1. Початок роботи
3. Структури управління
4. Цикли
5. Масиви
6. Методи

bookОснови перетворення типів

Перетворення типів - це процес перетворення значення одного типу даних в інший. Перетворення типів зазвичай можливе між числово представленими значеннями. Наприклад, ми можемо перетворити float на int і int на float. Однак перетворення string на int не має логічного сенсу і, отже, неможливе.

Існує два типи перетворення типів: Неявне перетворення типів та Явне перетворення типів.

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

cs

main

copy
1234
int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double

Коли відбувається неявне перетворення типів, це завжди від меншого до більшого типу даних. Розмір типу даних визначається тим, скільки бітів даних він може зберігати. Наприклад, int може зберігати 32 біти, тоді як long може зберігати 64 біти, тому неявне перетворення int на long можливе. Аналогічно, float на double також можливе.

Типи, упорядковані за їх розмірами, наведені від найменшого до найбільшого нижче: char -> int -> long -> float -> double

Явне перетворення типів відбувається, коли користувач конкретно вказує новий тип даних значення, до якого його слід перетворити. Явне перетворення типів необхідне, коли ми хочемо перетворити значення більшого типу даних на менший, оскільки майже завжди відбувається втрата даних при перетворенні значення з більшого на менший тип даних. Наприклад, якщо ми перетворимо 3.14 3.14 на ціле число, це дасть 3 як результат, отже, ми втратили деякі дані під час цього перетворення. Тому компілятору потрібна явна команда від програміста для виконання такого перетворення.

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }

Щоб виправити помилку в наведеному вище коді, нам потрібно явно привести val1 до цілочисельного значення.

Синтаксис приведення виглядає як (datatype) value, наприклад (int) 3.1415. Отже, в цьому випадку ми напишемо (int) val1:

cs

main

copy
123456789101112131415
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Які з наведених нижче тверджень є правильними?

Які з наведених нижче тверджень є правильними?

Виберіть кілька правильних відповідей

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 11
some-alt