Cuprins >> Introducere > Casting și conversia de tip
Articol de importanță mare

Casting și conversia de tip se referă în general la modificarea unui tip de date într-un alt tip de date. Pentru a putea efectua o operație pe două tipuri de date, trebuie să le convertim în același tip de date. Conversia de tip poate fi de două tipuri: implicită și explicită.

Există momente când utilizarea unei operații cu două tipuri de date va genera o excepție. Mai există și alte momente în care cele două tipuri de date sunt convertite în fundal în același tip, operație numită conversie de tip ascunsă. De exemplu, atunci când concatenăm un număr întreg cu un șir de caractere, .NET runtime convertește tipul int într-un string din mers, fără intervenția noastră:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
 
namespace BunaLume
{
    class Program
    {
        static void Main(string[] args)
        {
            int varsta = 32;
            string varstaMea = "Varsta mea este ";
            
            Console.WriteLine(varstaMea + varsta);
            Console.ReadLine();
        }
    }
}
Varsta mea este 32
 
 

Conversia de tip explicită ne permite în mod specific să tratăm o valoare de un anumit tip ca fiind o valoare de alt tip în timpul executării programului, iar acest lucru necesită uneori anumite validări.

Iată două exemple când conversia explicită necesită validare la transformare, și când nu:

  • când convertim din object în string, verificarea este necesară, deoarece programul trebuie să știe dacă obiectul este într-adevăr un șir de caractere și nu altceva.
  • când convertim din string în object, nu este necesară nici o verificare, tipul string este derivat din tipul object (vom afla mai multe despre acest lucru în viitor)
  • când convertim din int în tipurile de date reale poate fi făcută fără verificare, pentru că nu există nici un pericol de a pierde date (numărul întreg este mai mic decât tipurile reale, și un număr întreg nu poate avea zecimale)
  • când convertim din double în long, în funcție de valorile implicate, este posibil să obținem o pierdere de date, prin urmare trebuie să folosiți conversia explicită din virgulă mobilă pe 64 de biți în număr întreg pe 64 de biți.

Ar trebui să știți că tipurile de date nu pot fi convertite în orice tip, există numai valori acceptabile. De exemplu, dacă aveți un număr întreg de valoare 1 sau 0, îl puteți converti cu succes la un tip Boolean, dar orice altă valoare va genera o eroare, deoarece tipul boolean nu poate avea nici o altă valoare, cu excepția true (1) sau false (0).

Conceptele explicate în această lecție sunt prezentate și vizual, ca parte a următorului videoclip: