Базове Приведення Типів
Свайпніть щоб показати меню
Приведення типів — це процес перетворення значення з одного типу даних в інший. Це часто можливо між типами, які представляють числа. Наприклад, можна перетворити float у int і навпаки. Однак, перетворення string безпосередньо у int не має логічного сенсу і неможливе без додаткових кроків.
Існують два види приведення типів: неявне приведення типів та явне приведення типів.
Неявне приведення типів відбувається автоматично, коли значення перетворюється з одного типу в інший, зазвичай з меншого типу даних у більший.
main.cs
1234int 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, втрачаючи дробову частину. Саме тому потрібно явно вказувати комп'ютеру виконати таке перетворення.
main.cs
123456789101112131415using 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:
main.cs
123456789101112131415using 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); } } }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат