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/