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/