Mire van szükség a rekordtípusra
A rekordtípusok használatának egyik elsődleges előnye, hogy tömörebb szintaxist biztosítanak a csak adatokat tároló osztályok meghatározásához. Ez megkönnyíti a kód olvashatóságát és megértését, miközben csökkenti a megírandó kód mennyiségét. Ezenkívül a rekordtípusok alapértelmezés szerint változtathatatlanok, ami segít megelőzni a változtatható állapot okozta hibákat.
A rekordtípusok használatának másik előnye, hogy beépített támogatással rendelkeznek az egyenlőség-összehasonlításokhoz, a hash kódokhoz és a karakterlánc-reprezentációkhoz.
Bevezetés a C# rekordtípusokba
A C# rekordtípusai tömör módot kínálnak a kis, megváltoztathatatlan adatstruktúrák típusainak meghatározására. Amikor új rekordot hoz létre, átadhat értékeket a tulajdonságokhoz a konstruktorban, majd elérheti ezeket az értékeket a tulajdonság szintaxisával. Arra szolgálnak, hogy leegyszerűsítsék az olyan objektumok létrehozását és használatát, amelyek jól meghatározott szerkezettel rendelkeznek, és a létrehozás után nem kell őket módosítani.
nyilvános nyilvántartás < RecordName > ( < ParameterList > ) ;
A nyilvános kulcsszó a rekordtípust elérhetővé teszi a program többi osztálya számára. A rekord kulcsszó határozza meg az objektum típusát, majd a rekordtípus nevét. A ParameterList határozza meg a rekordtípus tulajdonságait. Íme egy példa, amelyre olyan cégadatokat tároltam, mint a név, a részleg és a kategória, alább látható a kódja:
Rendszer használata;
// Határozzon meg egy CompanyDetails nevű rekordot három karakterlánc tulajdonsággal: Név, Részleg és Kategória
Record CompanyDetails ( string Név, karakterlánc Osztály, karakterlánc Kategória ) ;
osztály Programja
{
statikus üres Fő ( húr [ ] args )
{
// Hozzon létre egy új példányt a CompanyDetails rekordból, és adja át ban ben az ingatlanértékeket
CompanyDetails cég = új CompanyDetails ( 'Linux tipp' , 'Tartalomírás' , 'Linux' ) ;
// Nyomtassa ki a cég nevét, osztályát és kategóriáját
Console.WriteLine ( $ 'Cég neve: {company.Name}' ) ;
Console.WriteLine ( $ 'Osztály: {company.Department}' ) ;
Console.WriteLine ( $ 'Kategória: {company.Category}' ) ;
}
}
Ebben a programban létrehozunk egy CompanyDetails nevű rekordot, amelynek három tulajdonsága van: Név, Osztály és Kategória, amelyek mindegyike egy karakterlánc. Ezután létrehozzuk a CompanyDetails új példányát company néven, és minden tulajdonsághoz értéket adunk át. A Console.WriteLine utasítások ezután a cégobjektum Name, Department és Category tulajdonságainak értékeit adják ki, itt a kód kimenete:
Több rekordtípust is definiálhat a C#-ban, és minden rekordtípusnak saját egyedi tulajdonságkészlete lehet. Például megadhat egy rekordtípust az alkalmazotthoz, egy másikat a vállalati adatokhoz, és itt van ennek kódja:
Rendszer használata;
// Rekord meghatározása egy cég adatainak tárolására
Record CompanyDetails ( string Név, karakterlánc Osztály, karakterlánc Kategória ) ;
// Rekord meghatározása az alkalmazott adatainak tárolására
rekord EmployeeDetails ( string Név, int Munkavállalóazonosító, int Életkor ) ;
osztály Programja
{
statikus üres Fő ( húr [ ] args )
{
// A CompanyDetails rekord példányának létrehozása és értékeinek inicializálása
var companyDetails = new CompanyDetails ( 'Linux tipp' , 'Tartalomírás' , 'Linux' ) ;
// A CompanyDetails rekord értékeinek kinyomtatása karakterlánc-interpoláció segítségével
Console.WriteLine ( $ 'Cég neve: {companyDetails.Name}' ) ;
Console.WriteLine ( $ 'Osztály: {companyDetails.Department}' ) ;
Console.WriteLine ( $ 'Kategória: {companyDetails.Category}' ) ;
// Az EmployeeDetails rekord példányának létrehozása és értékeinek inicializálása
var munkavállalóDetails = new EmployeeDetails ( 'Mark' , 7834 , 25 ) ;
// Az EmployeeDetails rekord értékeinek kinyomtatása karakterlánc-interpoláció segítségével
Console.WriteLine ( $ 'Alkalmazott neve: {employeeDetails.Name}' ) ;
Console.WriteLine ( $ 'Alkalmazotti azonosító: {employeeDetails.EmployeeID}' ) ;
Console.WriteLine ( $ 'Alkalmazott életkora: {employeeDetails.Age}' ) ;
}
}
Először is meghatározunk egy CompanyDetails rekordtípust három tulajdonsággal: CompanyName, Department és Category. Ezután létrehozzuk a CompanyDetails rekord új példányát, és inicializáljuk tulajdonságait a „Linux-hint”, „Content Writing” és „Linux” értékekkel.
Ezután meghatározunk egy másik EmployeeDetails rekordtípust három tulajdonsággal: Név, Alkalmazottazonosító és Életkor. Ezután létrehozzuk az EmployeeDetails rekord új példányát, és a tulajdonságait a „Mark”, 7834 és 25 értékekkel inicializáljuk. Végül a Console.WriteLine utasításokat használjuk a CompanyDetails és az EmployeeDetails rekordok tulajdonságainak értékeinek kiadására, itt. a kód kimenete:
Következtetés
A rekordtípusok a C# 9-ben bevezetett új szolgáltatás, amely egyszerűsített szintaxist biztosít az adatokat tároló osztályok létrehozásához. Számos előnnyel rendelkeznek, beleértve a tömör szintaxist, az automatikus egyenlőség-összehasonlítást, a kivonatolást, a nyomtatást és a megváltoztathatatlan objektumok egyszerű létrehozását.
Vannak azonban bizonyos korlátaik is, mint például a más osztályoktól való öröklés képtelensége és a bonyolult logika korlátozott funkcionalitása. Összességében a rekordtípusok hasznos eszközt jelentenek a C# fejlesztők számára, és javíthatják kódjuk olvashatóságát és karbantarthatóságát.