1. példa:
public struct autok
{
public int ar; //ft
public int motor; //cm3
public int szemely; //fő
public int teljesitmeny; //lóerő
}
static void Main(string[] args)
{
autok auto1 = new autok();
auto1.ar = 6000000;
auto1.motor = 1600;
auto1.szemely = 5;
auto1.teljesitmeny = 150;
--------------------------------------------------
Magyarázat:
public: módosítószó, ami befolyásolja az adott elem láthatóságát. Mostmár nem mindent a Main-be írunk. Amit nem oda írunk, annál szabályozhatjuk, mennyire legyen nyilvános. A public azt jelenti, hogy mindenhol látható. (A private pl. rejtettet jelent majd.)
struct: a struktúra adatszerkezet kulcsszava. A struktúra a procedurális nyelvekben (pl. Pascal) a rekordnak felel meg. Ebben összefogunk egy szerkezetbe összetartozó adatokat. A struktúra a definiálásakor (lásd a Main felett) még csak egy váz, egy üres szerkezet, ami megmutatja, milyen adatokat fogunk tárolni a példányosításkor.
autok: a struktúra neve
public int ar;: adattag, más néven mező a struktúrában. olyan, mint egy változó, de ez a struktúra törzsében van, és gyakran nem adunk neki kezdőértéket.
autok auto1 = new autok(); Itt definiálunk egy autok típusú változót auto1 néven, és a new kulcsszóval helyet foglalunk neki a memóriában az autok() konstruktor segítségével. Ezt hívjuk példányosításnak (létrehozunk egy példányt).
auto1.ar = 6000000; Az auto1 változón belül elérjük az ar mezőt (adattagot), ennek értékül adjuk a jobb oldalon levő értéket.
--------------------------------------------------
2. példa
namespace struktura
{
class Program
{
public struct auto
{
public string gyarto;
public double motor; //köbcenti
public int ulesek; //ülések száma
public bool akcio; //akciós-e
}
static auto[] autok = new auto[3];
static void bekeres()
{
for (int i = 0; i < autok.Length; i++)
{
Console.Write("Kérem az {0}. autó gyártóját: ",i+1);
autok[i].gyarto = Console.ReadLine();
Console.Write("Kérem az {0}. autó motor térfogatát: ",i+1);
autok[i].motor = Convert.ToDouble(Console.ReadLine());
Console.Write("Kérem az {0}. autó üléseinek számát: ",i+1);
autok[i].ulesek = Convert.ToInt32(Console.ReadLine());
Console.Write("Adja meg, hogy a(z) {0}. autó akciós-e (true/false)?: ",i+1);
autok[i].akcio = Convert.ToBoolean(Console.ReadLine());
}
}
static void kiiras()
{
for (int i = 0; i < autok.Length; i++)
{
Console.WriteLine("{0} autó", i+1);
Console.WriteLine(autok[i].gyarto);
Console.WriteLine(autok[i].motor);
Console.WriteLine(autok[i].ulesek);
Console.WriteLine(autok[i].akcio);
Console.WriteLine();
}
}
static void Main(string[] args)
{
bekeres();
kiiras();
Console.ReadLine();
}
}
}