Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta...

20
Capitolul 3 Fundamentele programarii Lectia 1: Intelegerea conceptelor programarii Lectia 2: Definirea structurii si fluxului unui program Lectia 3: Scrierea si organizarea codului Acest capitol introduce conceptele fundamentale ale limbajului Microsoft Visual C#. Aceste concepte reprezinta introducerea catre blocurile fundamentale de cod care formeaza un program. Dupa ce intelegeti lucrurile elementare, veti putea proiecta aplicatii puternice si complexe. Obiective: Sa explicati conceptele fundamentale ale programarii Sa definiti structura si fluxul unui program Sa explicatii liniile directoare pentru scrierea si organizarea codului Lectia 1: Intelegerea conceptelor fundamentale ale programarii Aceasta lectie introduce cateva concepte fundamentale, cum ar fi programele conduse de evenimente (event-driven), clasele si obiectele. Lectia descrie cum se definesc proprietatile, metodele si evenimentele. Sunt deasemenea descries principalele caracteristici ale spatiilor de nume (namespaces) si ale exceptiilor. Obiective Dupa parcurgerea acestei lectii, veti fi capabili sa: Sa descrieti programarea event-driven (condusa de evenimente) Sa definiti clasele si obiectele Sa definiti proprietatile, metodele si evenimentele Sa descrieti principalele caracteristice ale namespaces Sa descrieti principalele caracteristici ale exceptiilor 1.1 Ce este programarea condusa de evenimente? 1

Transcript of Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta...

Page 1: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Capitolul 3 Fundamentele programarii

Lectia 1: Intelegerea conceptelor programariiLectia 2: Definirea structurii si fluxului unui programLectia 3: Scrierea si organizarea codului

Acest capitol introduce conceptele fundamentale ale limbajului Microsoft Visual C#. Aceste concepte reprezinta introducerea catre blocurile fundamentale de cod care formeaza un program. Dupa ce intelegeti lucrurile elementare, veti putea proiecta aplicatii puternice si complexe.Obiective:

Sa explicati conceptele fundamentale ale programarii Sa definiti structura si fluxul unui program Sa explicatii liniile directoare pentru scrierea si organizarea codului

Lectia 1: Intelegerea conceptelor fundamentale ale programarii

Aceasta lectie introduce cateva concepte fundamentale, cum ar fi programele conduse de evenimente (event-driven), clasele si obiectele. Lectia descrie cum se definesc proprietatile, metodele si evenimentele. Sunt deasemenea descries principalele caracteristici ale spatiilor de nume (namespaces) si ale exceptiilor.

ObiectiveDupa parcurgerea acestei lectii, veti fi capabili sa:

Sa descrieti programarea event-driven (condusa de evenimente) Sa definiti clasele si obiectele Sa definiti proprietatile, metodele si evenimentele Sa descrieti principalele caracteristice ale namespaces Sa descrieti principalele caracteristici ale exceptiilor

1.1 Ce este programarea condusa de evenimente?

Cand creati in C# 2008 o aplicatie Web sau Windows Forms, create de fapt o aplicatie event-driven. Aceste aplicatii executa anumite portiuni de cod ca raspuns la anumite evenimente care se produc (utilizatorul selecteaza, de exemplu, un buton sau apasa o tasta). Cand se produce un eveniment, daca event-handler-ul asociat are cod scris de programator, acest cod este executat.

1

Page 2: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

DefinireaInstructiunile dintr-o aplicatie event-driven sunt executate numai cand un anumit eveniment

apeleaza o sectiune de cod scrisa special pentru respectivul eveniment. Evenimentele pot fi declansate de actionarea tastaturii, miscarea mouse-ului, de catre sistemul de operare sau codul aplicatiei. Un program event-driven urmareste in mod continuu si raspunde unui set de evenimente.

Caracteristici ale programelor event-driven Controlul fluxului programului este in principal exercitat de catre evenimente externe Aceste programe sunt flexibile si pot raspunde unor evenimente si intrari diversificate Programele event-driven pun accent pe comportamentul ne-concurential si sunt cat se poate de ne-

restrictive

1.2 Ce sunt clasele si obiectele?

Clasa este tipul fundamental de date definit de utilizator (user-defined) in C#. Cand proiectati o clasa, de fapt organizati informatia intr-o entitate plina de semnificatie. Aceasta organizare este de fapt o clasificare a informatiei. Inainte de a defini un obiect, trebuie sa definiti o clasa careia sa-i apartina obiectul.

Definirea unei clase si a unui obiectO clasa este ca un sablon (blueprint) din care create obiecte. O clasa defineste caracteristicile

unui obiect. Proprietatile unei clase definesc tipurile de date pe care le poate contine un obiect, iar metodele unei clase definesc comportamentul obiectului. Aceste caracteristici determina modul in care alte obiecte pot accesa si lucra cu datele continute intr-un obiect.

Un obiect este o instanta a unei clase. Daca o clasa este sablonul, atunci obiectul este item-ul creat dupa acest sablon.

Caracteristicile unei clase Clasa defineste caracteristicile unui obiect Aceste caracteristici definesc modul in care obiectele interactioneaza intre ele O clasa din .NET Framework este un tip particular de date care include tipul valorilor, tipul

referintelor, metode, atribute si proprietati.

Caracteristicile unui obiect Un obiect este instanta unei clase Un obiect este creat la executia programului Cand creati un obiect, creati de fapt un nou tip numit tip referinta In C# orice lucru are comportamentul unui obiect

2

Page 3: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Fiecare obiect ocupa propriul spatiu in memorie si exista independent de toate celelalte obiecte de acelasi tip

1.3 Ce sunt proprietatile, metodele si evenimentele?

In general, metodele inseamna actiuni si proprietatile inseamna date. Un eveniment este o actiune careia I se raspunde.

ProprietatileDescriu caracteristicile unui obiect. Spre exemplu, proprietatile unui balon includ atribute vizibile

cum ar fi inaltimea, diametrul si culoare. Alte proprietati descriu starea lui (umflat sau dezumflat) sau atribute care nu sunt vizibile, cum ar fi vechimea balonului. Toate baloanele au aceste proprietati, dar valorile acestora difera de la balon la balon.

MetodeleSunt actiunile pe care un obiect le poate face. Un balon poate avea urmatoarele metode: deplasare,

umflare, dezumflare, ascensiune. Evident, toate baloanele pot face aceste actiuni deci poseda aceste metode.

EvenimenteleSunt intamplari carora le puteti raspunde. Spre exemplu, un balon trebuie sa raspunda unor

anumite evenimente externe, cum ar fi: este spart sau este umplut cu heliu. Actiunile utilizatorului pot genera evenimente, cum ar fi apasarea unei taste sau apasarea unui buton. Evenimentele pot fi si programate cu ajutorul codului. In .NET Framework, evenimentele sunt utilizate in general pentru a gestiona activitatea din interfata cu utilizatorul.

1.4 Ce sunt spatiile de nume (namespaces)?

3

Page 4: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Folositi namespaces pentru a va organiza clasele intr-o ierarhie relationata logic. Namespaces functioneaza atat ca un sistem intern pentru organizarea aplicatiilor, cat si ca o modalitate externa pentru a evita confilctele de nume dintre aplicatia dvs. si alte aplicatii.

Definirea si caracteristicile unui namespaceLibraria de clase .NET Framework este formata din namespaces. Fiecare namespace contine

tipurile pe care le puteti utiliza in aplicatie: clase, structuri, enumerari, delegati si interfete. Deoarece clase diferite pot avea acelasi nume, este bine sa va organizati clasele intr-o ierhie de namespaces. In acest fel veti rezolva problemele de interoperabilitate.

Namespaces din libraria de clase .NET FrameworkMicrosoft .NET Framework este format din multe namespaces, cel mai important fiind System.

Spatiul de nume System contine clasele pe care cele mai multe aplicatii le folosesc pentru a interactiona cu sistemul de operare. Tabelul urmator prezinta cateva dintre spatiile de nume ce pot fi accesate prin System.

Spatii de nume definite de utilizatorNamespaces sunt de doua tipuri: predefinite si definite de utilizator. Spatiile definte de utilizator

sunt cele definite in codul aplicatiei. Este o practica foarte buna sa va definiti toate clasele in spatii de nume. Mediul Visual Studio foloseste numele proiectului dvs. pentru a numi spatiul de nume de cel mai inalt nivel.

1.5 Ce sunt exceptiile?

Platforma .NET Framework permite tuturor limbajelor .NET sa utililizeze modul structurat de gestionare a exceptiilor. Acest mod furnizeaza o structura de control care include exceptii, blocuri de cod protejate si filtre care permit codului dvs. sa gestioneze in mod eficient si robust exceptiile.

4

Page 5: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

DefinireO exceptie este orice eroare de conditie sau comportament neasteptat pe care un program le

intampina. Exceptiile pot sa apara ca urmare a unei greseli din codul dvs. sau din codul pe care il apelati. Spre exemplu, depasirea capacitatii de memorie disponibila sau incapacitatea de a localiza un fisier, reprezinta exceptii.

Caracteristicile exceptiilorCand apare o exceptie, executia programului este intrerupta si controlul este cedat celui mai

potrivit administrator de exceptii. Puteti utiliza instructiunile try, catch si finally pentru a detecta exceptiile aruncate de codul dvs. si a reactiona la ele corespunzator. Ar trebui sa tratati exceptiile atunci cand trebuie sa efectuati ua din urmatoarele operatii:

Incercati sa depasiti erorile aparute la run-time Colectati informatii despre logare Adaugati unei exceptii informatii importante Executati cod de curatare a erorilor

Managementul erorilor de run-timeComponenta CLR din Microsoft .NET furnizeaza o modalitate uniforma de de notoficare a

exceptiilor, chiar daca modulul care sesizeaza exceptia este scris in alt limbaj decat cel care genereaza exceptia. Toate clasele de exceptii trebuie derivate din clasa de baza Exceptions din spatiul de nume System. Exceptiile pot fi generate de .NET sau pot fi programate prin cod.

Lectia 2: Definirea structurii si a fluxului programului

Obiective1. Sa explicati structura unui program .NET Framework2. Sa descrieti metodele si functiile3. Cum setati proprietatile in cod4. Cum apelati o metoda5. Cum implementati administratorii de evenimente (event-handler)6. Cum utilizati functionalitati predefinite7. Cum referiti spatiile de nume

2.1 Care este structura unui program .NET Framework?

O solutie Visual Studio contine unul sau mai multe proiecte. Un proiect contine unul sau mai multe ansambluri. Fiecare ansamblu este compilat din unul sau mai multe fisiere sursa. Un fisier sursa furnizeaza definitia si implementarea claselor, structurilor, modulelor si interfetelor care, in final, contin tot codul dvs.

5

Page 6: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Elementele programarii la nivel fisierCand incepeti un proiect sau un fisier si deschideti editorul de cod, Veti vedea un cod deja scris in

ordinea corecta. Cand scrieti cod, ar trebui sa urmariti si respectati urmatoarele etape:1. Declaratiile using pot fi folosite pentru a importa clase sau alte tipuri definite inafara proiectului

dvs.2. Declaratia namespace si nivelurile ei ierarhice va ajuta sa va organizati si clasificati elementele

programului.

Elementele programarii la nivelul namespaceElementele nivelului namespace pot aparea in interiorul spatiului de nume sau la nivelul fisierului

sursa, spre exemplu clase sau structuri. Aceste elemente pastreaza declaratiile pentru toate celelalte elemente ale programului. Interfetele, care definesc semnatura dar nu si implementarea elementelor, apar deasemenea la nivelul modulului. Elementele de date care apar la nivelul namespace sunt enumerarile si delegatii.

Elementele programarii la nivelul modululuiProcedurile, operatorii, proprietatile si evenimentele sunt singurele elemente de program care

contin cod ce va fi executat la run-time. Ele sunt elementele nivelului modul. Datele de la acest nivel sunt constante, variabile, enumerari si delegati.

Elementele programarii la nivelul proceduriiElementele de pe acest nivel contin, in cea mai mare parte, instructiuni ce vor fi executate la run-

time. Orice cod executabil trebuie sa fie in interiorul unei proceduri. Datele acestui nivel sunt variabilele locale si constantele.

Metoda Main este punctul de intrare al programului dvs, unde creati obiecte si apelati alte metode. Programul poate avea un singur punct de intrare. Cuvantul cheie static transforma metoda Main intr-un membru al nivelului clasa astfel incat nu va trebui sa creati un obiect pentru a apela metoda Main. Metoda Main poate returna un intreg sau nimic si are un argument optional de tip tablou de siruri care reprezinta parametrii din linia de comanda.

Metode si functii

O metoda este o procedura dintr-o clasa, care realizeaza o prelucrare si, optional, returneaza o valoare. In C# metodele sunt implementate ca proceduri de tip functie care returneaza o valoare de un anumit tip sau void cand nu returneaza nimic.

Sintaxa si exempluSintaxa unei metode in C# este ilustrata de urmatorul exemplu:

6

Page 7: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Eplicatii: accesModifier specifica una din urmatoarele restrictii:

o numai clasele derivate pot folosi membrul claseio numai clasele din programul sau spatiul de nume curent pot folosi membrul clasei

returnType specifica tipul rezultatului returnat de metoda MethodName specifica numele metodei parameterList, daca exista, specifica argumentele (parametrii) metodei returnObject, daca exista, specifica obiectul returnat de metoda

Urmatorul exemplu prezinta doua metode. Prima metoda ,publica, nu are parametri, nu returneaza nimic si afiseaza un mesaj. A doua metoda, privata, are ca argument un numar si returneaza patratul acestuia.

Cum se stabilesc proprietatile in cod

Suplimentar fata de stabilirea proprietatilor din fereastra Properties (in modul design), puteti stabili majoritatea proprietatilor scriind cod. Orice proprietate stabilita in timpul design-ului este folosita ca proprietate initiala pentru aplicatia dvs. Spre exemplu, puteti seta anumite proprietati in timpul rularii aplicatiei ca raspuns la interactiunea cu utilizatorul.

SintaxaPentru a seta o proprietate folositi urmatoarea sintaxa:

Unde objectName este numele obiectului, PropertyName este numele proprietatii pa care doriti sa o setati, iar value este valoare pe care verti sa i-o dati respectivei proprietati.

ExempluSetarea proprietati Text a obiectului de control helloTextBox la valoarea “Hello”:

7

Page 8: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Cum apelati o metoda

Cand apelati o metoda, trebuie sa definiti corect lista parametrilor de intrare, daca exista. Aceasta include tipul, ordinea si numarul parametrilor. Numele metodei si lista parametrilor formeaza semnatura metodei.

SintaxaPentru a apela o metoda folositi urmatoarea sintaxa:

Numele metodei trebuie sa fie corect (C# este case-sensitive), iar lista argumentelor trebuie sa coincida cu lista parametrilor in ceea ce priveste tipul, ordinea si numarul. Daca metoda accepta mai multi parametri, acestia se separa i lista prin virgula. In C# trebuie deasemenea sa precizati modul in transmiteti un parametru metodei:

in – parametrul este transmis metodei prin valoare; metoda il poate folosi, dar nu il poate modifica; este parametru de intrare

out – parametrul este transmis prin referinta (adresa); el este calculat si returnat de functie; este parametru de iesire

ref – parametrul este transmis prin adresa; el trebuie initializat inainte de a apela metoda care il poate folosi si modifica; este parametru de intrare-iesire

ExempluEste apelata metoda predefinita Show din clasa MessageBox pentru a afisa mesajul “Hello”:

Cum implementati un event-handler

8

Page 9: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Intr-un program event-driven, fluxul executiei este determinat de aparitia evenimentelor externe. Aceste evenimente apar cand utilizatorul interactioneaza cu aplicatia dvs. si trebuie sa creati un event-handler pentru fiecare eveniment la care doriti ca aplicatia sa raspunda. Fiecare control are un eveniment implicit, spre exemplu evenimentul Click pentru un buton. Controalele pot sa raspunda la numeroase alte evenimente care nu sunt implicite. Pentru a crea un event-handler, utilizati fereastra Design sau Code din C# 2008. Dupa ce ati creat event-handler-ul, ii adaugati codul necesar pentru a raspunde la evenimentul respectiv.

Parametrii unui event-handlerCodul urmator prezinta event-handler-ul implicit pentru un control Button. Il puteti crea facand

dublu-click pe buton in fereastra Design.

Parametrii unui event-handler furnizeaza informatie pe care o puteti utiliza pentru a gestiona corect un eveniment. Primul parametru (sender) se refera la obiectul care a generat evenimentul (butonul in acest exemplu). Al doilea parametru (e) este un obiect care contine informatii specifice tipului de eveniment. Acest parametru poate fi utilizat, de exemplu, pentru a anula evenimentul. De exemplu, in codul pentru event-handler-ul FormClosing, puteti utiliza instructiunea e.Cancel=true; pentru a impiedica forma sa se inchida.

Crearea unui event-handler neimplicit1. In fereastra Design, faceti clic pe controlul caruia vreti sa-i creati un event-handler2. In fereastra Properties, facti clic pe eticheta Events din bara de meniuri a ferestrei. Se va afisa

lista de evenimente asociate controlului.3. Localizati evenimentul pe care doriti sa-l gestionati

Introduceti numele event-handler-ului in caseta de nume corespunzatoare si apasati Entersau

Faceti dublu-clic pe caseta de nume a evenimentului care va crea un event-handler care respecta conventia controlName_EventName.

Gestionarea evenimentelor multiple cu un singur event-handlerDe multe ori este util sa gestionam mai multe evenimente cu un singur event-handler. De

exemplu, daca o optiune de meniu si un buton din bara de instrumente au aceeasi functionalitate, puteti folosi acelasi event-handler pentru a le gestiona pe amandoua. In fereastra Properties puteti stabili ca un eveniment sa foloseasca un event-handler deja creat. In fereastra Code puteti adauga evenimente unui event-handler deja creat.

Cum folositi functionalitati predefinite

9

Page 10: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Platforma .NET Framework furnizeaza numeroase metode predefinite pe care le puteti utiliza in codul dvs. Puteti apela aceste metode predefinite in acelasi mod in care le apelati pe cele proprii. Aceste functionalitati predefinite includ metode pentru data calendaristica si timp, metode pentru siruri de caractere (string) si metode de formatare.

Categorii de metode

SintaxaSintaxa unei metode fara parametri este:

Unde: Namespace este spatiul de nume care contine clasa pe care doriti sa o utilizati ClassName este numele clasei care contine metoda MethodName este numele metodei pe care o apelati

Pentru metodele care necesita argumente, trebuie sa furnizati in plus argumentList, adica lista argumentelor cu care apelati metoda.

ExempluIn exemplul urmator este determinata lungimea unui sir de caractere utilizand metoda Length din

clasa String. Pentru a afisa sirul de caractere si lungimea lui, este apelata metoda WriteLine din clasa Console din spatiul de nume System.

Cum referiti intr-un proiect spatiile de nume

Cand creati un proiect in C#, cele mai utilizate ansambluri de clase de baza sunt deja incluse in proiect. Daca insa doriti sa utilizati un tip care nu se gaseste intr-un ansamblu deja inclus in proiect, va

10

Page 11: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

trebui sa adaugati o referinta la ansamblul respectiv cu ajutorul ferestrei de dialog Add Reference. Veti lista apoi spatiile de nume la inceputul fisierului cu ajutorul clauzei using.

Folosirea ferestrei de dialog Add ReferenceAceasta fereastra permite editarea fisierelor de referinte pentru un proiect. Un fisier de referinte

contine informatii despre cerintele de executie ale unei aplicatii sau componente. Fereastra de dialog Add Reference afiseaza panouri erichetate cu numeroase componente si proiecte pe care le puteti rasfoi.

Pentru a referi un ansamblu In fereastra Solution Explorer faceti clic-dreapta pe proiect si alegeti Add Reference Selectati eticheta tipului de componenta pe care doriti sa o adaugati proiectului Faceti dublu-clic pe componenta respectiva

Importarea spatiilor de numePentru a importa un spatiu de nume folositi clauza using. Spre exemplu, pentru a utiliza metoda

WriteLine din clasa Console din spatiul de nume System, este suficient sa includeti clauza using System; in fisierul sursa al aplicatiei. Toate clasele definite in System for fi accesibile proiectului.

Lectia 3: Cum scrieti si stilizati codul

Obiective: Sa descrieti conventia pentru identificatori Sa prezentanti cele mai bune practici pentru formatarea codului Sa explicati cum adaugati comentarii in cod Sa descrieti caracteristica IntelliSense din C# 2008

3.1 Conventii de numire

Reguli de numireSunt patru reguli pe care trebuie sa le respectati cand numiti un element, altfel programul nu va

putea fi compilat si executat:1. Fiecare nume trebuie sa inceapa cu o litera sau cu liniuta de subliniere (underscore)2. Fiecare nume trebuie sa contina numai litere, cifre si underscore3. Daca numele incepe cu underscore, in rest trebuie sa apara macar o litera sau o cifra4. Numele nu poate fi un cuvant rezervat

11

Page 12: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Conventii de numirePuteti atribui unui obiect orice nume, dar este bine sa folositi aceeasi conventie de notare in tot

programul. Exista trei elemente in conventiile de notare:1. Caz: sunt doua metode de folosire a literelor mari, in functie de elementul pe care il numiti.

PascalCasing: aceasta conventie scrie cu majuscula prima litera din fiecare cuvant din nume. Spre exemplu, folositi OpenButton in loc de Openbutton sau Open_Button. Puteti folosi aceasta conventie de notare pentru a numi:

Clase Metode Proprietati Evenimente Spatii de nume

o camelCasing: conform acestei conventii, se scrie cu majuscula prima litera din fiecare cuvant cu exceptia primului cuvant din nume. Spre exemplu, folositi backColor in loc de back_color sau backcolor. Puteti folosi aceasta conventie pentru:

variabile parametri

2. Mecanism: folositi substantive pentru obiecte, verbe pentru metode etc.3. Alegerea cuvintelor: folositi termeni legati de segmentul de cod respectiv

3.2 Cea mai buna practica pentru formatarea codului

Puteti sa va faceti codul mai usor de citit si intretinut, daca il formatati corespunzator. Formatati-va codul folosind indentarea, caracterul de continuare de linie, concatenarea si StringBuilder.

IndentareaPrin indentare sunt puse in evidenta blocurile de cod. Editorul de cod din C# va indenteaza

automat codul. In C# 2008 puteti folosi tasta TAB sau butonul Increase Indent din bara de unelte a editorului de text.Continuarea liniei

Puteti intrerupe liniile de cod pentru a le putea citi fara bara de derulare.

ConcatenareaPuteti imparti un sir in doua sau mai multe siruri pe care le puteti concatena cu operatorul + pentru

a face codul mai usor de citit. Codul urmator ilustreaza folosirea intreruperii de linie si a operatorului + astfel incat intregul cod sa fie vizibil fara bara de derulare.

12

Page 13: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

StringBuilderStringurile nu pot fi modificate. Dupa ce un string a fost alocat in memorie, continutul lui nu mai

poate fi modificat. Daca sirul se modifica, este necesara o noua locatie de memorie pe a stoca noul string. Sa consideram urmatoarea secventa de cod:

In acest exemplu, sirul s1 este creat si apoi modificat. In acest fel exista doua versiuni ale variabilei s1 ce vor fi stocate temporar in memorie. Metoda string.Concat creaza un nou sir si concateneaza s1 cu rezultatul metodei ToString. Rezultatul acestei concatenari este o noua locatie de memorie. Cand o astfel de operatie apare intr-o bucla, pot apare probleme cu memoria si performanta generala a programului.

Solutia este sa utilizati clasa StringBuilder din spatiul de nume System.Text. StringBuilder aloca initial un spatiu pentru 16 caractere; daca sirul devine mai mare decat atat, el este marit automat. In urmatorul exemplu va fi alocat un singur string:

3.3 Cum adaugati comentarii in cod

Este bine sa incepeti fiecare functie cu o scurta descriere a functionalitatii functiei.

ComentariiTrebuie sa separati comentariile de implementare. Pentru a adauga comnentarii procedati astfel:

Incepeti un comentariu pe o linie cu //. Un comentariu pe mai multe linii trebuie scris intre /* si */.

In exemplul urmator sunt ilustrate ambele tipuri de comentarii:

Butoanele Comment si UncommentPuteti adauga/inlatura comentariile pentru un bloc de cod folosind butoanele corespunzatoare din

bara de unelte a editorului de text.

13

Page 14: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Reguli pentru comentariiCu cat codul devine mai complex, comentariile il fac mai usor de citit si intretinut. Ar trebui sa

folositi comentariile pentru a explica functionalitatea unui bloc de text, mai ales atunci cand aceasta nu este evidenta.Urmatoarea lista prezinta cateva reguli pentru comentarea codului:

Incepeti metodele/procedurile cu un bloc de comentarii. Acest comentariu ar trebui sa ofere informatii despre scopul metodei, rezultatul returnat si parametri.

In metodele lungi, folositi comentariile pentru a separa blocurile functionale Cand declarati variabile, folositi comentarii pentru a preciza cum le veti folosi Cand scrieti o structura decizionala, folositi un comentariu care explica cum se va lua decizia si ce

implica ea.

Caracteristicile IntelliSense

VS furnizeaza un grup de facilitati care va usureaza scrierea codului, facilitati cunoscute sub numele IntelliSense. Cand editati codul, IntelliSense va ofera informatii despre sintaxa direct in editorul de cod.Lista membrilor

IntelliSense afiseaza lista membrilor pentru un tip sau un spatiu de nume. Cand selectati un membru din lista, puteti apasa Enter sau Tab pentru a-l insera in cod. Cand selectati un item din lista, inainte de a-l insera in cod, este afisat si un Quick Info despre respectivul item.

14

Page 15: Modulul 3 - INFORMATICĂ ȘI TIC ÎN ATL · Web viewComplete Word (completarea cuvintelor) Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere

Quick InfoAceasta optiune afiseaza declaratia completa pentru orice identificator din codul dvs. Pentru a

afisa aceste informatii, mutati cursorul peste elementul respectiv.

Complete Word (completarea cuvintelor)Aceasta optiune va tipari restul unui identificator odata ce ati scris suficiente caractere pentru a-l

deosebi de alti identificatori. Tipariti primele litere dintr-un identificator si apoi apasati tasta ALT+Sageata Dreapta sau CTRl+Spatiu pentru a completa cuvantul.

Modificarea optiunii IntelliSenseMajoritatea optiunilor IntelliSense sunt implicite. Puteti opri aceasta optiune si sa o apelati prin

intermediul unei comenzi de meniu sau combinatii de taste. Chiar daca o optiune este implicita, puteti sa o invocati explicit. Puteti deasemenea sa schimbati tasta implicita pentru fiecare optiune. Daca schimabati setarile pentru Intellisense, ele se vor modifica si in fereastra Code Editor si in fereastra de comanda Immediate Mode. Imbunatatirile din C# 2008 includ Live Browsing si Code Snippets. Cu Live Browsing, informatiile de navigare sunt generate automat in timp ce scrieti codul astfel incat definitiile si referintele sunt disponibile imediat in editor. Cu Code Snippets, puteti insera usor blocuri predefinite de cod direct in fisierul sursa. Acest lucru imbunatateste productivitatea reducand timpul de scriere a codului, erorile si marind cantitatea de cod pretestat inclusa in aplicatia dvs.

15