fbpx

Tipul struct in C# | Teorie si exemple

de Catalin Presneanu

Struct, ca si in C++ este o structura de date. Diferenta dintre struct din C++ si struct din C# este aceea ca in C#, tipul struct este o clasa mai patricularizata. Despre clase am vorbit intr-un video anterior, asa ca astazi o sa ne axam strict pe struct.

In primul si in primul rand, definirea tipului struct se face in felul urmator

struct Angajati 
{ 
    public int IdAngajat;
    public string NumeAngajat;
    public string PrenumeAngajat;
    public string EmailAngajat;
    public string ParolaAngajat;
}

 

Dupa cum ati observat la finalul declararii struct nu mai trebuie pus nimic. Aceasta este o prima diferenta dintre C# si C++. Pentru a ne putea folosi de aceasta structura va trebui sa o tratam ca pe un obiect. Voi creea un obiect numit „angajat”, cu ajutorul cuvantul new si voi afisa cateva date despre acest angajat.

struct Angajati 
{ 
    public int IdAngajat;
    public string NumeAngajat;
    public string PrenumeAngajat;
    public string EmailAngajat;
    public string ParolaAngajat;
}

Angajati angajat = new Angajati();
Console.WriteLine(angajat.IdAngajat); //Output: 0

Dupa cum puteti vedea, daca new folosim de new, programul va afisa valoarea 0, acum voi face un obiect fara a folosi cuvantul new.

struct Angajati 
{ 
    public int IdAngajat;
    public string NumeAngajat;
    public string PrenumeAngajat;
    public string EmailAngajat;
    public string ParolaAngajat;
}

Angajat angajat;
Console.Write(angajat.IdAngajat); // Compile time error  

angajat.IdAngajat = 1;
Console.Write(angajat.IdAngajat); // prints 1

In struct putem adauga si o functie care are ca parametrii si ca nume, elementele din struct. De exemplu:

struct Angajati 
{ 
    public int IdAngajat;
    public string NumeAngajat;
    public string PrenumeAngajat;
    public string EmailAngajat;
    public string ParolaAngajat;

    public Angajati(int idangajat, string nume, string prenume, string email, string parola)
    {
        IdAngajat = idangajat;
        NumeAngajat = nume;
        PrenumeAngajat = prenume;
        EmailAngajat = email;
        ParolaAngajat = parola;
    }
}

Angajati angajat = new Angajati(2, "Presneanu", "Catalin", "[email protected]", "1234ss");

Console.Write(angajat.IdAngajat); // Output: 2 
Console.Write(angajat.NumeAngajat); // Output: Presneanu 
Console.Write(angajat.PrenumeAngajat); // Output: Catalin
Console.Write(angajat.EmnailAngajat); // Output: [email protected]
Console.Write(angajat.ParolaAmgajat); // Output: 1234ss

Dupa cum puteti observa, adaugarea se realizeaza direct, fara a mai pierde timpul sa le adaugam manual pe rand. In urmatorul exemplu o sa va prezint cate lucruri despre metode si proprietati in struct:

struct Angajati 
{ 
    public int IdAngajat;
    public string NumeAngajat;
    public string PrenumeAngajat;
    public string EmailAngajat;
    public string ParolaAngajat;

    public Angajati(int idangajat, string nume, string prenume, string email, string parola)
    {
        IdAngajat = idangajat;
        NumeAngajat = nume;
        PrenumeAngajat = prenume;
        EmailAngajat = email;
        ParolaAngajat = parola;
    }

    public string GetFullName()
    {
        return NumeAngajat + " " + PrenumeAngajat;
    }
}

Angajati angajat = new Angajati(2, "Presneanu", "Catalin", "[email protected]", "1234ss");

Console.Write(angajat.GetFullName()); // Output: Presneanu Catalin

Articole folositoare: https://tutoriale-pe.net/tipul-struct-in-c-teorie-si-probleme-rezolvate/

Comentarii

S-ar putea sa iti placa