Sunteți pe pagina 1din 25

Programare cu

C#

~ curs de inițiere în programare~


CAPITOLUL I

1.1.Algoritmi

Un algoritm reprezintă o secvență de pași necesari pentru rezolvarea unei probleme.

Exemplu:

Rutina de dimineață:

 5:00 trezirea
 5:15 sport
 6:00 duș cald
 6:15 pregătirea micului dejun
 6:30 micul dejun
 6:45 urmărirea știrilor
 7:15 drumul spre locul de muncă

Similar, în programare un algoritm este o succesiune de instrucțiuni pe care le execută calculatorul


pentru a rezolva o problemă:

 Pornind de la datele de intrare


 Efectuează calcule complexe
 Generează un set de date de ieșire

Exemple din programare:

Aplicațiile pe care le folosești zi de zi în spate folosesc algoritmi:

 Agendă - simpla căutare a unui contact în agenda ta telefonică


 Skype - poate transmite un flux audio video de date în timp real
 Google - poate să îți dea rezultate relevante chiar dacă caută în trilione de pagini web
 Softul tău GPS - poate să îți arate cel mai optim drum între două localități
 Ultimul joc video - are peisaje și personaje care arată ca și în realitate

Caracteristici:

Un algoritm trebuie să fie:

 Corect - în primul rând trebuie să rezolve problema pentru care a fost creat
 General - nu trebuie să rezolve doar o problemă particulară ci o clasă de probleme
 Determinist - cu aceleași date trebuie să îmi întoarcă tot timpul aceleași date de ieșire
 Finit - trebuie să se termine după un număr finit de pași
 Eficient - execută un număr rezonabil de pași

-2-
1.2.Limbaje de programare

Un limbaj de programare e un limbaj formal ce constă dintr-un vocabular


specific și un set de reguli gramaticale concepute special pentru a instrui un
calculator ce sa facă.

 Exprimăm algoritmii într-un limbaj de programare


 Toate programele executate de calculator, de la sistemul de operare până la jocuri și alte
aplicații, sunt scrise într-un limbaj de programare

Un programator scrie un text, numit cod sursă, într-un limbaj de programare pentru a crea
programe de calculator.
Atenție! - Programele trebuie scrise cu mare grijă pentru că modificări mici (de exemplu un "+"
în loc de "-") pot genera probleme foarte mari. Dacă programatorul greșește, programul poate să nu
mai funcționeze sau să nu se comporte așa cum ne așteptam. O astfel de greșeală de programare se
numește bug.

Clasificare

a) După nivelul de apropiere de limbajul natural:

 În general când vorbim de limbaje de programare ne referim la limbajele de nivel înalt, cum sunt
Java, C#, C++, Python, etc.
 Acestea sunt mai ușor de scris și citit de către oameni dar pentru a fi citite și de către calculatoare
trebuie convertite în cod mașină
 Codul mașină e specific fiecărui tip de procesor și e format doar din numere
 Limbajul de asamblare face legătura între codul mașină și limbajele de nivel înalt
 Este similar cu codul mașină, dar e mult mai ușor de citit pentru că codurile numerice sunt
înlocuite cu mnemonice (prescurtări de 3-4 litere care indica o operație)

b) După modul de conversie în cod mașină:

 Limbaje compilate: C/C++, C#, Java, Pascal


 Codul sursă e tradus integral în cod mașină
 Procesul de traducere se numește compilare, iar programul ce face traducerea se
numește compilator
 Rezultatul compilării e un program executabil direct de către calculator. Codul sursă
original nu e necesar pentru execuție
 Exemplu: programele executabile disponibile în Windows

 Limbaje interpretate: Javascript, Python, PHP


 Codul sursă e tradus câte o line odată, care e executată, după care se trece la următoarea
linie și tot asa
 Procesul de traducere se numește intepretare, iar programul ce face traducerea se
numește interpretor
 Pentru a rula programul pe o anumită masină e nevoie să fie disponibil atât codul sursă, cât
și interpretorul
 Exemplu: aplicațiile web funcționează bazându-se pe limbaje interpretate
-3-
Alegerea celui mai potrivit limbaj de programare pentru un proiect specific poate depinde de
numeroase alte criterii. De exemplu, există limbaje specializate pentru un anumit domeniu, cum e
limbajul SQL pentru interogarea bazelor de date.

Exemplu:

Un program simplu în C#:

Același lucru în C:

Și, din nou, același exemplu în Java:

1.3.Tipuri de date

Principiul de bază al programării este să primești niște date de intrare, să le procesezi și apoi
să întorci rezultatul (datele de ieșire).

Exemplu:

 Un program care calculează maximul a două numere:


 poate avea ca date de intrare cele 2 numere
 iar ca date de ieșire numărul care e mai mare

Tipurile de date reprezintă o clasificare a datelor cu care lucrează programele.

Tipul de date indică:

 sensul datelor
 valorile posibile pentru acel tip de date
 operațiile care se pot face cu acele date
 modul de stocare a datelor în memorie

-4-
Exemple:

Toate limbajele de programare au niște tipuri de date predefinite:


 numere întregi (1, -5 sau 1023)
 numere reale (1.5, 0.0001)
 tipul boolean (true sau false)
 caractere ('a', '?')
 șiruri de caractere alfanumerice ("un text oarecare")

Majoritatea limbajelor permit și definirea de tipuri noi, compuse, derivate din cele de bază. De
exemplu: șiruri de numere, enumerări, dată/oră, etc.

1.4.Medii de dezvoltare
Pentru a scrie programe folosim un mediu de dezvoltare.

Mediul de dezvoltare conține într-o singură aplicație unelte ce acoperă toți pașii
necesari pentru crearea unui program.
De exemplu:
 Editarea codului sursă
 Compilarea
 Depanarea
 Testarea

Delphi - un mediu de dezvoltare pentru limbajul Pascal;


NetBeans și Eclipse - folosite preponderent pentru dezvoltarea de aplicații in limbajul Java, dar
suportă și alte limbaje;
Microsoft Visual Studio - folosit pentru dezvoltare aplicațiilor Windows, predominant în
limbajele C#, C++, VB sau pentru aplicații web (HTML, Javascript, Typescript, CSS, etc.). Similar
cu NetBeans si Eclipse și in Visual Studio există o mare varietate de plugin-uri și extensii ce adăugă
suport pentru numeroase alte limbaje de programare.

În lecțiile din acest curs vom folosi limbajul de programare C# și mediul de dezvoltare Microsoft
Visual Studio. Microsoft oferă o versiune gratuită a Visual Studio numită Community Edition care
e perfectă pentru acest curs.

Descărcare și instalare Visual Studio:


Visual Studio 2022 Community Edition – Download Latest Free Version (microsoft.com)

-5-
CAPITOLUL II

2.1.Tipuri de programe
Nu există o definiție riguroasă despre clasificarea aplicațiilor software, dar există numeroase
criterii de a împărți programele în diverse categorii.

Exemple:

a) După natura proceselor automatizate:


- aplicații de securitate;
- software educațional;
- jocuri;
- programe de gestiune a afacerilor;
- etc.

b) După limbajul de programare în care sunt scrise:


- C#
- Java
- C++
- Python
- etc.

c) După tipul dispozitivului pentru care sunt concepute:


- aplicații pentru calculator;
- aplicații pentru dispozitive mobile (telefoane, tablete, etc.)

Aplicații client – server


Aplicațiile client-server au o structură distribuită între componentele ce furnizează resurse
sau servicii, numite server și componentele care cer aceste servicii numite clienți.
Clienții și serverele se află frecvent pe calculatoare diferite și comunică între ele printr-o
rețea de calculatoare, dar pot să ruleze și împreună pe același sistem.
World Wide Web (WWW) sau emailul sunt exemple unde se aplică modelul client-server.

Aplicații desktop și aplicații web


Aplicație desktop - rulează autonom pe un computer sau laptop (de exemplu: Microsoft
Word, Paint, Notepad, etc.)
Aplicație web - programe client-server unde clientul (interfața cu utilizatorul) rulează într-
un web browser (exemplu: Gmail, aplicațiile de Internet Banking, etc.)

-6-
Aplicații cu interfață grafică și aplicații consolă
 Majoritatea programelor din zilele nostre au o interfață grafică cu utilizatorul și
 pot afișa text și elemente multimedia
 se pot utiliza folosind tastatură, mouse, ecran tactil, etc.

 Aplicațiile consolă sunt concepute pentru o interfață cu utilizatorul bazată doar pe text
 utilizatorul interacționeză cu astfel de aplicații folosind doar tastatura și monitorul

Notă: În acest curs vom învăța să creăm și să folosim aplicații consolă. Acestea permit crearea
rapidă a unei interfețe simple cu utilizatorul și apoi ne putem concentra pe obiectivul principal al
cursului: să învățăm să creăm algoritmi pentru a rezolva anumite probleme și a automatiza diverse
procese.

2.2.Aplicații consolă

În această prezentare vom învăța să creăm prima aplicație consolă simplă în limbajul de
programare C# folosind Microsoft Visual Studio.

Creăm un proiect nou deschizând Visual Studio și selectând opțiunea Create new project:

-7-
Sau folosind meniul principal din Visual Studio: File > New > Project...

Selectăm proiectul de tip C# > Console App:

Și specificăm un nume sugestiv:

-8-
După ce am creat proiectul, în Solution Explorer observăm:
- că avem o soluție cu numele specificat anterior;
- un proiect care are același nume cu soluția;
- un fișier Program.cs ce conține codul sursă.

Pentru a rula aplicația în Visual Studio, avem mai multe variante:


- selectăm opțiunea Debug > Start debugging;
- apăsăm tasta F5;
- folosim butonul de rulare a aplicației, din bara de unelte.

Dacă ați urmat pașii descriși în paginile anterioare tocmai ați creat și rulat primul
dumneavostră program, ce afișează la consolă mesajul Hello, World!

În acest curs vom învăța să creăm programe cu ceva mai multă funcționalitate.

-9-
CAPITOLUL III

3.1.Tipuri de bază în C#

3.1.1.Tipul boolean

 Declarat prin cuvântul cheie: bool


 Are două valori posibile: true și false
 Valoare implicită: false
 Operatorii posibili: AND (&&), OR (||), NOT (!) și OR exclusiv (^)

- 10 -
3.1.2.Tipuri întregi
 Declarate prin unul dintre cuvintele cheie: sbyte, byte, short, ushort, int, uint, long, ulong
 Valoare implicită: 0
 Cel mai folosit tip în programare: int

Sunt două categorii de tipuri întregi:


 cu semn - numere întregi (sbyte, short, int, long)
 fără semn - numere naturale (byte, ushort, uint, ulong)
Diferența între tipurile întregi mai e dată și de dimensiunea lor

Dimensiunea tipurilor întregi

 sbyte, byte - 1 byte (octet)

 short, ushort - 2 bytes (octeți)

 int, uint - 4 bytes (octeți)

 long, ulong - 8 bytes (octeți)

Intervale de valori

Intervalele de valori variază în funcție de dimensiune:


 sbyte - de la -128 până la 127
 byte - de la 0 până la 255
 short - de la -32,768 până la 32,767
 ushort - de la 0 până la 65,535
 int - de la -2,147,483,648 până la 2,147,483,647
 uint - de la 0 până la 4,294,967,295
 long - de la –9,223,372,036,854,775,808 până la 9,223,372,036,854,775,807
 ulong - de la 0 până la 18,446,744,073,709,551,615

Vă puteți întreba de ce există atâtea tipuri întregi. Răspunsul este unul simplu: pentru a salva
spațiu. De exemplu, dacă știm că anumite date pot lua valori doar între 0 și 100 putem folosi
tipul byte, ce ocupă de 4 ori mai puțin spațiu decât tipul int. Diferența e seminifcativă mai ales dacă
trebuie să salvăm milioane de astfel de date într-o bază de date sau trebuie transferate pe Internet.

Operatori:

- operatori aritmetici: + - * / %*
- operatori de comparare: = = != < > <= >=
- operatori binari: & | ^ ~ << >>
*
La fel ca și în matematică, există o ordine în care se execută operațiile

- 11 -
Operatori aritmetici:

În urma unei operații aritmetice, rezultatul va fi tot un număr întreg.

Exemple: 5 / 2 (rezultatul va fi 2, împărțirea fiind întreagă);


5 % 2 (rezulatul va fi 1, restul împărțirii întregi).

Atenție la cazuri de depășire a intervalului dat de tip pentru că rezultatul va fi trunchiat.


De exemplu, presupunând că folosim tipul byte:
255 + 10
rezultatul adunării va fi 9, se pierde partea cea mai semnificativă a numărului.

Pentru a evita depășirea trebuie folosit un tip de dimensiune potrivită.

Pentru a cere compilatorului să facă verificările de depășire există checked

Operatori de comparare:

Rezultatul comparări a două numere întregi va fi tot timpul un tip boolean.

Exemple: 10 < 3 (rezultatul va fi false, 10 nu este mai mic decât 3);


3 == 3 (rezultatul va fi true, 3 este egal cu 3);
3 != 3 (rezultatul va fi false, 3 nu este diferit de 3)

Literali:

Un literal e o valoare scrisă direct în codul sursă a unui program. Un literal de tip întreg e o
secvență de cifre, în plus poate conține un semn + sau –

Implicit orice literal din cod va fi de tip int. Există unele sufixe care pot schimba acest
comportament.

- 12 -
Conversii implicite:

Este suportată conversia implicită de la un tip mai mic la un tip mai mare:

Referințe: Built-in numeric conversions - C# reference | Microsoft Learn

Conversii explicite (casting):

Este posibilă forțarea conversiei de la un tip mai mare la un tip mai mic:

Putem să ne folosim de casting inclusiv pentru conversiile implicite:

Referințe: Built-in numeric conversions - C# reference | Microsoft Learn

3.1.3.Tipuri reale:
- Declarate prin unul din cuvintele cheie: float, double sau decimal
- Valoare implicită: 0

Precizia tipurilor reale:

 În matematică tipurile reale au un număr infinit de valori, calculatorul trebuie să aproximeze


 În diverse domenii e nevoie de numere foarte mari sau foarte mici foarte aproape de zero
 Ne oferă garanții doar până la o anumită precizie (adică număr maxim de cifre pe care pot să îl
păstreze)

- 13 -
float
 Tip real cu precizie simplă
 Dimensiune de 4 bytes
 Valori de la -3.4 × 10-38 până la ±3.4 × 1038
 Precizie de 7 cifre
 Valori speciale: minus și plus infinit, NaN (not a number)

Exemple:
0.123456789 văzut ca și float va fi 0.1234568
la fel 123456789 ca și float va fi 1.2345678E+08

double
 Tip real cu precizie dublă
 Dimensiune de 8 bytes
 Valori de la ±5.0 × 10-324 până la ±1.7 × 10308
 Precizie de 15-16 cifre
 Valori speciale: minus și plus infinit, NaN (not a number)

Exemplu:
3.141592653589793238 ca și double va fi 3.14159265358979

decimal
 Dimensiune de 16 bytes
 Valori de la -7.90 × 1028 până la 7.9 × 1028
 Precizie de 28 de cifre
 Reprezentat în sistem zecimal (și nu binar ca și float și double)
 Recomandat pentru calcule financiare pentru că pierderile cauzate de rotunjiri sunt mai mici
Exemplu:
3.14159265358979323846264338327 ca și decimal va fi
3.1415926535897932384626433833

Când trebuie folosite:


- Dacă nu ai neapărată nevoie de numere reale folosește-te de numere întregi;
- Alege tipul real potrivit în funcție de interval, precizie și dimensiune:
 dacă precizia e mai importantă folosește tipul decimal;
 dacă performanța e mai importantă folosește float sau double pentru că operațiile pe aceste
tipuri sunt mai rapide decât pe decimal.

- 14 -
Literali:

Implicit, orice literal real din cod, va fi de tip double

Operatori:

- operatori aritmetici: + - * /
- operatori de comparare: = = != < > <= >=*
- operatori binari: & | ^ ~ << >>
*
Trebuie avut grijă la operatorii de egalitate, pentru că din cauza aproximărilor s-ar putea să nu aibă rezultatul așteptat.

Conversii implicite:

- Nu există conversie implicită între float sau double și decimal


- Orice tip întreg poate fi convertit într-un tip real
- Există conversie implicită de la float la double

Conversii explicite:

- Putem forța conversia de la double la float


- Putem forța conversia de la double sau float la decimal și invers
- E posibil să forțezi conversia unui tip real într-un tip întreg

- 15 -
- În cazul în care într-o operație aritmetică unul dintre operanzi e de tip real iar restul de tip întreg
rezultatul operației va fi de tip real

- similar, dacă unul dintre operanzi e de tip double și ceilalți de tip float, rezultatul va fi double

Rotunjiri:

Funcții care rotunjesc un float, double sau decimal la:


- Math.Round - la cel mai apropiat număr întreg
- Math.Ceiling - la cel mai apropiat număr întreg mai mare decât numărul dat
- Math.Floor - la cel mai apropiat număr întreg mai mic decât numărul dat

3.1.4.Tipul caracter:
- Declarat prin cuvântul cheie: char
- Reprezintă un singur caracter (litere, semne de punctuație,...)
- Fiecare caracter e codat ca și un număr, de la 0 la 65535
- Valoare implicită: caracterul cu cod 0
- Similar cu tipul întreg ushort

Tabelul UNICODE:

- Succesor al tabelului ASCII care coda caracterele în numere de la 0 la 255


 A - Z au valorile între 65-90
 a - z au valorile între 97-122
 0 - 9 au valori între 48-57
 restul fiind alte simboluri
- El completează tabelul ASCII cu litere și caractere disponibile în alte limbi

Referințe: ASCII Table - ASCII Character Codes, HTML, Octal, Hex, Decimal
List of Unicode characters - Wikipedia

- 16 -
Literali:

- Un caracter e delimitat de apostroafe ( ` )

- Există mai multe caractere speciale, care trebuie exceptate prin folosirea caracterului
backslash (\)

- Se poate și folosi direct codul caracterului

Conversii:

- char e convertit implicit la tipurile întregi cât și la tipurile reale, pentru conversie se folosește
codul caracterului
- nu există conversie implicită de la un alt tip la char
- se poate converti explicit la char din tipuri întregi și reale

- 17 -
CAPITOLUL IV

4.1.Variabile

Pentru a ilustra o variabilă, imaginează-ți o bibliotecă nelimitată:

Similar o variabilă în programare are:


 o adresă în memoria calculatorului
 un nume pe care îl asociem acelei adrese
 un tip ce ne spune ce dimensiune are variabila dar și ce operații suportă
 o valoare pe care o putem modifica în timpul programului
 o durată de viață și un domeniu de vizibilitate

- 18 -
4.1.1.Blocuri de cod și domeniu de vizibilitate

Un bloc de cod e delimitat de acolade { și }

O variabilă e vizibilă:
 în blocul de cod în care a fost definită
 în sub-blocuri
 din momentul în care a fost definită

4.1.2.Vocabular:

 poți declara o variabilă, declarația e linia care specifică tipul și numele variabilei
 poți atribui o valoare unei variabile folosind operatorul de asignare = *
 poți inițializa o variabilă, prima atribuire a variabilei
 poți accesa o variabilă, practic îi citești valoarea salvată în variabila respectivă
 o variabilă are un domeniu (scope) de vizibilitate
 o variabilă poate fi nedeclarată la un moment dat dacă încă nu a fost declarată sau nu e în același
domeniu

* Există operatori de asignare care aplică o operație aritmetică pe variabilă: +=, -=, ...

4.1.3.Rostul variabilelor:

- generalitate - la fel ca și în matematică, o variabilă reprezintă orice valoare posibilă a acelui tip
- reduce repetiția - o valoare odată calculată poate fi salvată într-o variabilă pentru a fi folosită de
câte ori e nevoie
- claritate - un calcul mai complex poate fi descompus în părți distincte

- 19 -
4.2.Constanta

Inversul unei variabile e constanta. Valoarea unei constante trebuie să fie cunoscută în
momentul declarației și nu poate fi modificată.

4.3.Numele unei variabile

Recomandări pentru numele de variabile:


 să fie tot timpul pe engleză
 să conțină doar litere
 variabila să înceapă cu literă mică și fiecare nou cuvânt să fie cu literă mare (camel case)
 să folosească numele unui substantiv sau locuțiuni substantivale
 să fie cât mai explicit pentru contextul din care face parte, evitați prescurtările *

4.4.Instrucțiuni, blocuri și expresii

4.4.1.Instrucțiuni

Acțiunile pe care le execută programul se numesc instrucțiuni.


O instrucțiune trebuie terminată cu punct și virgulă (;).

- 20 -
4.4.2.Tipuri de instrucțiuni

4.4.3.Blocuri de instrucțiuni

Un bloc de instrucțiuni e delimitat de { și }.


Poate conține la rândul lui și alte blocuri.

4.4.4.Expresii

O expresie e o combinație de valori, variabile, operatori, paranteze și funcții care pot fi evaluate la o
valoare nouă.

- 21 -
4.5.Erori de compilare și erori de execuție

C# este un limbaj compilat. Codul sursă scris în C# trece printr-un proces de traducere până
ajunge în formatul de program executabil ce poate fi rulat pe calculator.
Procesul de traducere se numește compilare, iar programul care face traducerea compilator.
În cadrul acestui curs folosim compilatorul integrat în Microsoft Visual Studio.

4.5.1.Erori de compilare

- Erorile de compilare sunt generate în timpul compilării și indică:


 probleme de sintaxă - atunci când programul nostru nu respectă regulile sintactice ale
limbajului în care este scris
 folosirea improprie a tipurilor de date
- Dacă compilarea s-a efectuat cu succes știm că:
 codul sursă compilat e un program C# valid
 s-a generat programul executabil pe care îl putem rula

Exemple:

Eroarea ne spune că lipește un ';' din codul sursă. Toate instrucțiunile din C# sunt separate între ele
prin ';', iar în cazul de față acesta lipsește după instrucțiunea de inițializare a lui x.

Eroarea ne spune că nu putem atribui o valoare de tip bool unei variabile de tip int.

Visual Studio ne ajută să detectăm ușor problemele din codul sursă pentru că le sublinează
cu diverse culori, în funcție de gravitate.
De exemplu, erorile de sintaxă sunt subliniate cu roșu, iar cu verde ne avertizează de
probleme posibile (gen situații când declarăm o variabilă, dar nu o folosim deloc ulterior). Dacă
mergem cu mouse-ul deasupra porțiunii de cod subliniate Visual Studio afișează motivul pentru
care apare acea subliniere.

Important:

 Înainte de a trimite pentru validare soluția la un test practic asigurați-vă că ați eliminat toate
problemele potențiale:
 nu aveți porțiuni de cod subliniate
 ați rulat programul pe calculatorul propriu și acesta întoarce rezultatele așteptate

- 22 -
4.5.2.Erori de execuție

- Erorile de execuție sunt generate în timpul rulării programului


- Câteva situații ce generează erori de execuție:
 conversie invalidă de la un tip de date la altul
 împărțirea la 0
 operații cu numere întregi unde se depășește intervalul tipului și e folosit cuvântul
cheie checked
 când programul nu mai are memorie diponibilă suficientă

Exemplu:

4.6.Introducere șiruri
Un șir (array) e o secvență continuă de elemente de același tip. Numărul total de elemente
se numește lungimea sau dimensiunea șirului. Elementele șirului sunt indexate, începând de la 0
și până la N-1.

4.6.1.Declararea și crearea unui șir

- 23 -
4.6.2.Accesarea unui element din șir

Pentru a accesa un anumit element folosindu-ne de index, trebuie să ne folosim de


parantezele drepte [ ].

Elementele unui șir încep de la zero și merg până la dimensiunea șirului minus 1.

4.6.3.Dimensiunea unui șir

4.6.4.Tipul string

- Declarat prin cuvântul cheie string


- Reprezintă o colecție imutabilă de char-uri
- Valoare implicită: null
- Un string e delimitat de ghilimele (")

Declarare și inițializare:

Concatenare de string-uri:
Alipirea a două stringuri se numește concatenare.

- 24 -
4.7.Citirea datelor de intrare

În exercițiile de până acum datele de intrare au fost inițializate cu valori prestabilite:


programele realizate mergeau doar pentru acele valori. În practică un program trebuie să fie general:
să rezolve o clasă de probleme, nu doar o problemă specifică.

Exemplu:

- un program ce calculează suma a două numere întregi trebuie să meargă pentru oricare
două numere, fără a fi modificat de fiecare dată când dorim să îl rulăm cu date de intrare diferite.
De exemplu, codul de mai jos nu e general pentru că funcționează doar pentru suma numerelor 3 și
2. Dacă vrem să calculăm 10 + 2 nu putem fără a modifica programul.

Pentru ca progamul să fie general datele de intrare trebuie furnizate de către utilizatorul
programului și citite și folosite în interiorul programului.

4.7.1.Citirea datelor de intrare

Într-o aplicație consolă putem citi datele de intrare introduse de către utilizator de la tastatură
folosind funcția Console.ReadLine

În exemplul de mai jos aplicația așteaptă ca utilizatorul să scrie ceva la tastatură, iar după ce
se apasă tasta <ENTER> se afișează înapoi mesajul introdus de utilizator:

4.7.2.Conversii

- Funcția Console.ReadLine citește datele de intrare și le returnează întotdeauna folosind


tipul string
- Putem converti datele de intrare la tipul dorit folosind clasa Convert:
 Convert.ToInt32 convertește la tipul int
 Convert.ToInt16 convertește la tipul short
 Convert.ToInt64 convertește la tipul long
 Convert.ToDouble convertește la tipul double
 Convert.ToDecimal convertește la tipul decimal
 Convert.ToBoolean convertește la tipul boolean

- 25 -

S-ar putea să vă placă și