Saturday, December 04, 2021 20:01

Cuprins >> Introducere > Conversia de tip explicită

Conversia de tip explicită

Conversia de tip explicită înseamnă de fapt „știu concret ce fac, așa că lasă-mă să convertesc asta în astălaltă, pentru că știu că va funcționa”. Este folosită ori de câte ori există o posibilitate de pierdere de date. De exemplu, atunci când convertim din orice tip de număr real într-un întreg, există întotdeauna o pierdere de date, deoarece numerele întregi nu pot stoca părți fracționare. Dar, dacă sunteți absolut siguri că nu aveți nevoie de acea parte fracționară, conversia explicită va funcționa bine.

De asemenea, după cum se arăta într-un articol anterior, atunci când convertim de la un tip cu interval mai larg într-un tip cu interval mai mic, există posibilitatea pierderii de date, deoarece gama mai largă poate stoca un număr mai mare decât intervalul mai mic.

Modalitatea de realizare a conversiei explicite este de a plasa tipul în care doriți să convertiți în paranteze, în fața valorii care urmează să fie convertită, astfel:

Evident că în exemplul nostru, valoarea double poate fi transformată intr-un int, pentru că știm că 2.3 este suficient de mic pentru a încape într-un int, și știm că partea fracționară va fi pierdută. Totuși,

Exemplul de mai sus va eșua lamentabil, deoarece valoarea maximă a unui int este 2147483647, in timp ce double poate stoca 7000000000. Nu vom primi nici o eroare sau excepție, dar valoarea va fi incorectă, din cauza excepției overflow. Dacă ne dorim să ne asigurăm că un astfel de lucru nu se va întâmpla, C# ne oferă un cuvânt cheie, checked, care include verificarea unei situații de depășire în tipuri întregi:

Următoarele tipuri pot fi convertite unul în altul în mod explicit (amintiți-vă, cu posibilitate de pierdere de date!):

sbyte, byte, short, ushort, char, int, uint, long, ulong, float, double, decimal

Ca o notă finală, ar trebui să știți că nu este permisă conversia de tip din/în string în/din alte tipuri. Vom explica conversia din/în string în lecția următoare.

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

Tags: , ,

Leave a Reply



Follow the white rabbit