Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Tipuri de date in limbajul c# – tipuri valorice

     Limbajul C# include doua categorii de tipuri de date : tipuri valorice si tipuri referinta.

     Pentru ca C# respecta un domeniu de valori si fiecare tip valoric are un comportament, limbajul asigura portabilitate. De exemplu, o variabila declarata de tip int va ramane tot de tip int, indiferent de mediul de executie. Acest lucru ne ajuta la evitarea rescrierii codului pentru adaptarea programului la o anumita platforma.

     Conform MSDN, tipurile valoare se clasifica astfel :

I – Tipul structura – care cuprinde :

Tipuri numerice

Intregi

     In C# sunt definite 9 tipuri de intregi : char, byte, sbyte, short, ushort, int, uint, long, ulong.  Cu exceptia lui char, toate sunt folosite la calcule numerice.

     Variabilele de tip int se utilizeaza  in controlul buclelor, indexarea tablourilor, aritmetica normala cu numere intregi. Se recomanda ca atunci cand e nevoie de o valoare ( fara semn ) care depaseste domeniul lui int,sa se foloseasca uint. In cazul valorilor mari este recomandat long, iar la cele  fara semn, ulong.

domeniu Valori Virgula Mobila C#

            //declararea unui int cu valoare implicita 0
            int aria;

            //un alt mod de a declara un int
            int latime = new int();


            //atribuire valoare pentru variabila latime
            latime = 30;

            //declarare si initializare
            int lungime = 40;

            //CALCUL ARIA           
            aria = latime * lungime;

            //Afisarea rezultatului in consola
            Console.Write("Aria este {0} metri patrati.", aria);

In virgula mobila

      Tipurile in virgula mobila, se utilizeaza pentru reprezentarea numerelor care au parte fractionara. Exista doua tipuri : float, double. Acesta din urma, este cel mai intrebuintat.

domeniu Valori Virgula Mobila C#

            //declararea unui double cu valoare implicita 0
            double mediaAn;

            //declarea si initializare
            double mediaSemUnu = 8.45;

            //un alt mod de a declara un tip double
            double mediaSemDoi = new double();

            //atribuire valoare pentru variabila mediaSemDoi
            mediaSemDoi = 9.65;
            
            //CALCUL MEDIA
            mediaAn = (mediaSemUnu + mediaSemDoi) / 2;

            //afisarea rezultatului in consola
            Console.WriteLine("Media anuala este {0}", mediaAn);

Decimal

     Tipul decimal este folosit in calculele monetare. El are avantajul ca elimina erorile de rotunjire atunci cand se lucreaza cu valori fractionare, pentru ca poate reprezenta in mod precis pana la 28 de pozitii zecimale. Tipul decimal nu exista in C, C++, Java.

domeniu Valori Virgula Mobila C#

            //variabile de tip decimal,in declarare, trebuie urmate de m sau M
            //declarea unei variabile decimal cu valoare implicita 0.0M
            decimal sold = 1000.10m;
            //un alt mod de a declara o variabila decimal
            decimal dobanda = new decimal();

            dobanda = 0.1m;
          
            //CALCUL SOLD NOU
            sold = sold + sold * dobanda;

            //afisarea in consola a rezultatului
            Console.WriteLine("Noul sold este {0} USD ", sold);

 

Tipuri Bool

     Tipul bool retine valorile de adevar ( “true” ) si fals ( “false” ). Orice expresie de tipul bool va lua una din aceste valori. Nu se poate converti. Teora

            bool a;
            a = false;
            Console.WriteLine("a este {0}", a);
            bool b;
            b = true;
            Console.WriteLine("b este {0}", b);

Caractere

     In C#, pentru caractere, se utilizeaza modelul Unicode.

            //declararea unei variabile char cu valoare implicita '\0'
            char ch;

            ch = 'b';
            //afisarea valorii din standardul UNICODE pentru un caracter
            //are loc conversia catre un int
            Console.WriteLine("Valoarea lui {0} in standardul UNICODE este {1}",ch,(int)ch);

II Structura – tip valoare propriu

     Este asemantor cu cel din C++. Pentru ca este un tip valoric, va fi stocata in stiva. Atat timp cat structura este rezonabila in ceea ce priveste marimea, nu vor fi probleme cu administrarea memoriei.

     O structura poate contine declaratii de constante, campuri, metode, proprietati, indexatori, operatori, constructori.

Cele mai simple structuri, sunt System.Int32, System.Int64, System.Single, etc,  pentru tipurile de baza int, long, float.

struct Persoana
   {

       public string nume;
       public string prenume;
       public int varsta;
   }

III – Tipul enumerare

     Tipul enumerare se defineste de programator si se aseamana cu cel din C++. Acest tip permite folosirea numelor carora li se atribuie o valoare.

     Este recomandat sa declaram si sa definim o enumerare direct in interiorul unui spatiu de nume, pentru a putea fi folosita de toate clasele.

Sintaxa pentru a defini o enumerare este :

[atribute] [modificatori] enum NumeEnum : [tip]

      In cazul in care nu se specifica tipul enumerarii, acesta este considera implicit int.  ( [] – optional )

namespace tipulEnum
{
    enum ZileSaptamana
    {
        Luni = 1,
        Marti,
        Miercuri,
        Joi,
        Vineri,
        Sambata,
        Duminica
    }
}

Un exemplu de folosire a acestei enumerari este  :

        Console.WriteLine("Miercuri este a {0} zi din saptamana ", (int)tipulEnum.ZileSaptamana.Miercuri);

Pentru a converti un tip string, de exemplu avem numele zilei, in Enum, se procedeaza in felul urmator:

        ZileSaptamana zi = (ZileSaptamana) Enum.Parse(typeof(ZileSaptamana), "Miercuri");

Observatii:
     Implicit, valoare primului membru din enumerare este 0. Pentru un exemplu simplu si practic, initializat variabila ‘Luni’ cu 1; Apoi, fiecare variabila care va urma va avea o valoare implicita mai mare decat precendenta, cu o unitate.
     Daca nu foloseam conversia in exemplu ( int ), rezultatul ar fi aratat numele elementului.
     Tipurile enum sunt derivate din clasa System.Enum, derivata din System.ValueType.

Tipurile nullable

     Sunt tipuri valoare pentru care se pot memora valori posibile din aria tipurilor de baza, inclusiv valoare null.

     Valoarea unei variabile contine valoarea implicita a tipului, daca nu este initializata explicit. Exista cazuri, in care se doreste ca valoarea implicita a variabilei sa nu fie definita.

Se foloseste structura System.Nullable <T>, T este un tip valoare , astfel :

Nullable<int> a ;

Un alt mod de a declara o variabila de acest tip este: int? a = null; iar verificarea se poate face in felul urmator: Console.WriteLine(“valoarea variabilei este {0}”, a ?? “null”);

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*