conversie explicite și implicite în c #

conversie explicite și implicite în c #

Buna ziua, Aleksey Gulynin în contact. In ultimul articol am învățat ce .NET Framework. În acest articol, aș dori să vorbesc despre conversie explicită și implicită la C #. C # este un limbaj puternic tipizat. Tipul de variabilă trebuie să fie specificat când este inițializat. Uneori ai nevoie pentru a converti variabila la un alt tip. În C # există o conversie explicită și implicită de tip (implicit converti). Caracteristica de conversie implicită în principal pentru tipurile numerice: byte, short, int, lung, float, dublu. Cum să înțeleagă acest lucru? tip octet de date este convertit în mod implicit la tipurile de date scurte, int, lung. tip de date este convertit scurt, implicit, la int tipuri de date, lung. Int convertit implicit la un lung, float implicit transformat într-o dublă. Și pentru a dubla toate aceste tipuri sunt convertite implicit.

Să analizăm conversia exemplu de tip implicită:

De ce o astfel de conversie este posibilă. Răspunsul constă în faptul că intervalul de valori se suprapune int lung (adică lung pot fi înregistrate orice int valoare), valorile rază scurtă de acțiune se suprapune octet etc.

Aici vedem că a avut loc conversia, și mesajele sunt afișate. Cu toate acestea, conversia inversă nu se execută, adică, lung nu convertit implicit la int. scurt, la un octet, etc. Când încercați să efectuați o transformare de compilator în derâdere:

Compilatorul spune, „că conversia implicită în octetul scurt este imposibilă. Există o conversie explicită (Pierdeți exprimate?)“. La compilator compilare știe ce valoare este stocată în variabila b (tipul byte) și s (tip scurt). dar nu orice tip de numere scurte pot fi puse în octetul. Este posibil să se scrie o valoare de scurtă. care nu se încadrează în octet.

Prin urmare, există o eroare în timpul compilării.

Cu conversie de tip implicit, ne-am gândit, hai să vorbim despre conversie explicită. Operatorul, care face acest lucru se numește o distributie. în paranteze înaintea variabilei indică tipul de date la care ar trebui să fie convertite variabila. exemplu:

Există un alt mod de conversie de date utilizând clasa Conversie. în cazul în care există o mulțime de metode statice (cu prefix Pentru a). Aceste metode statice funcționează conversia. Rearanjat exemplul anterior:

Aici am adăugat mult timp pentru a int conversie. Există mai multe metode statice: ToInt16 (), ToInt32 (), ToInt64 (). Să luăm în considerare semnificația acestor cifre ca, de exemplu, metoda ToInt32. Tipul de date int ocupă 4 octeți (avem nevoie pentru a stoca variabila 4 octeți) și este de 32 de biți (4 octeți * 8 (un octet de 8 biți) = 32 biți).

De asemenea, rețineți că există o metodă ToString universală (). orice tip de date care se traduce într-un șir de caractere. Ce se întâmplă dacă vrem să convertim string la un număr? Acest lucru este necesar atunci când un utilizator introduce ceva. Nu va Analizează metoda. Luați în considerare următorul exemplu:

Totul este bine, dar în cazul în care utilizatorul introduce nu este un număr, precum și orice nonsens, programul se va prăbuși. Pentru a evita acest lucru, utilizați metoda TryParse (). Această metodă verifică dacă este posibilă conversia, și, dacă este posibil, se returnează adevărat. Remake codul nostru:

Tema punerea în aplicare a acestui algoritm: mesaj de ieșire „Introduceți un număr întreg“ până când nu se va introduce un număr întreg. Cu alte cuvinte, în cazul în care este introdusă nu este un număr întreg, programul nu ar trebui să fie încheiată și un mesaj ar trebui să apară din nou.

În acest articol ai învățat ce constructori în C #.

Mai multe articole.

  • conversie explicite și implicite în c #
    C Structura #
  • conversie explicite și implicite în c #
    dimensiunea directorul C #
  • conversie explicite și implicite în c #
    Ce este .NET Framework?
  • conversie explicite și implicite în c #
    Instrumente pentru a construi aplicații .NET-
  • conversie explicite și implicite în c #
    Metode supraîncărcate C #

articole similare