Limba c # 8

În C #, există o clasă de caractere Char bazată pe clasa System.Char și folosind o reprezentare de caractere de două octeți Unicode. Pentru acest tip, constantele simbolice sunt definite în literele limbajului simbolic. Puteți specifica o constantă:

- un caracter inclus în citate unice;

- o secvență de evacuare care specifică codul de caractere;

- O secvență Unicode care specifică codul de caractere Unicode.

Trei variabile de caractere sunt inițializate cu constante ale căror valori sunt specificate în trei moduri diferite. Variabila ch este declarată în stilul obiectului, folosind noul și apelând constructorul de clasă. Tipul de caractere, la fel ca toate tipurile C #, este o clasă. Această clasă moștenește proprietățile și metodele clasei Object și are un număr mare de metode proprii.

Conversiile explicite sau implicite între clasele de caractere și cele de șir nu sunt disponibile, dar datorită metodei ToString, variabilele de caractere sunt convertite într-un mod standard. După cum sa menționat mai sus, există conversii implicite de tipul char în tipuri întregi, începând cu tipul ushort. Sunt, de asemenea, disponibile conversii inverse de tip intreg la tipul de caractere, dar ele sunt deja explicite.

Ca urmare a procedurii TestChar, sirul obținut prin cuplarea a trei caractere convertite în șiruri are valoarea BZX, variabila ch este egală cu A, iar codul său este codul variabil-65.

S-a observat de mai multe ori că semantica de atribuire este valabilă atunci când apelați metode și înlocuiți argumentele formale cu cele reale. Iată două proceduri care efectuează operații reciproce inverse: obținerea simbolului prin cod și obținerea caracterului prin codul său:

După cum puteți vedea, în prima procedură, conversia la întregul tip este implicită. În al doilea, transformarea este explicită. Din motive de universalitate, este ușor de complicat. Parametrul formal este de tip Object, care vă permite să treceți la acesta ca un argument codul specificat de orice tip întreg. Prețul pentru aceasta este necesitatea efectuării a două conversii explicite.

Clasa Char, ca toate clasele din C #, moștenește proprietățile și metodele obiectului clasei părinte. Dar el are propriile sale metode și proprietăți, și există multe dintre ele. Un rezumat al acestor metode este prezentat în Tabelul 5.

Tabelul 5. Metode și proprietăți statice ale clasei Char

Proprietăți care returnează caractere cu codul maxim și minim. Caracterele returnate nu au o imagine vizibilă

Cele mai multe metode statice sunt supraîncărcate. Acestea pot fi aplicate fie unui singur caracter, fie unui șir pentru care urmează să se utilizeze numărul de caractere pentru aplicarea metodei. Grupul principal este metoda Is, care este extrem de utilă atunci când parsează un șir. Dăm exemple în care se utilizează multe dintre următoarele metode:

Rezultatele ieșirii consolei generate de execuția metodei sunt prezentate în Fig. 26.

Limba c # 8

Figura 26. Apelarea metodelor statice ale caracterelor de clasă

În plus față de metodele statice, clasa Char are dinamică. Cele mai multe dintre ele sunt metode ale clasei părinte Object, moștenite și redefinite în clasa Char. Din propriile metode dinamice este de remarcat metoda CompareTo, care permite compararea caracterelor. Aceasta diferă de metoda Equal prin faptul că, pentru caracterele care nu se potrivesc, aceasta produce o "distanță" între caractere în funcție de ordonarea lor Unicode.

Rezultatele comparației sunt prezentate în Fig. 27.

Limba c # 8

Figura 27. Compararea caracterului

Analizând aceste rezultate, se poate înțelege că atât alfabetul latin, cât și alfabetul chirilic din codificarea Unicode sunt bine ambalate. Excepția este litera "E" - capitalul și micul - acestea cad din codificarea densă. Literele mici din codificare urmează imediat literele majuscule. Distanța dintre alfabete în codificare este destul de mare - scrisoarea rusă A are 975 de caractere la dreapta codificării, decât litera corespunzătoare din alfabetul latin.

Articole similare