Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok egy struktúrát...

Hogyan tudok egy struktúrát felülírni vagy módosítani C#-ban?

Figyelt kérdés

Létre akarok hozni egy struct-ot, aminek megadnám a paramétereit, de a későbbiakben módosítanám, a felhasználó igényei szerint. pl:

tárolok benne koordinátákat (X,Y), de később szeretnék hozzáadni még tulajdonságot, vagy a meglévőeket módosítani. Megtehetem? Ha nem, milyen irányba induljak el?



2017. jan. 4. 20:34
1 2
 1/13 anonim ***** válasza:
Meg.
2017. jan. 4. 20:36
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:
=
2017. jan. 4. 20:37
Hasznos számodra ez a válasz?
 3/13 A kérdező kommentje:
Hát, köszönöm a segítséget, de nem értem mire gondolsz. Kifejtenéd pcit hosszabban? .)
2017. jan. 4. 20:43
 4/13 anonim ***** válasza:
Mi okozza a gondot?
2017. jan. 4. 20:58
Hasznos számodra ez a válasz?
 5/13 A kérdező kommentje:

Az hogy pl ebből:


public struct Bookmark

{


}

2017. jan. 4. 21:03
 6/13 A kérdező kommentje:

Az hogy pl ebből:


public struct Bookmark

{


}

2017. jan. 4. 21:04
 7/13 A kérdező kommentje:

Az hogy pl ebből:


public struct Bookmark

{

string nev;

int pozició;

}


Hogy csinálok ilyet:


public struct Bookmark

{

string nev;

int pozició;

Color szin; //ilyet

}

2017. jan. 4. 21:05
 8/13 A kérdező kommentje:
Szeretném, ha később módosítani vag felülrni tudnám a struktúrát, ha ez lehetséges.
2017. jan. 4. 21:05
 9/13 anonim ***** válasza:

Nos, a struct és a class között van egy olyan különbség, hogy a struct a stack-en tárolódik, míg a class a heap-en. Ezt így kezdésnek erős bevezetés volt, de nézzük meg, mikor érdemes struct-ot használni:

- ha a mérete 16 bájt alatt van (ez csak a változók memóriaigényére vonatkozik)

- egy összetett értéket reprezentál

- ha azt akarod, hogy az állapotát ne lehessen megváltoztatni (ez azt jelenti, hogy ha van egy (4,4) koordinátám, nem akarom átírni (5,4)-re a program futása során - azaz immutable legyen)


Szóval ha van egy ilyened:

struct Coord {

private int x;

private int y;

public int X {

.. get { return this.x; }

}

public int Y {

.. get { return this.y; }

}

public Coord(int x, int y) {

.. this.x = x;

.. this.y = y;

}

}


Ez így eddig oké, mert:

- az állapota nem változtatható meg a program futása során

- mérete 8 bájt (a két int típusú mezője ("változója") 4-4 bájtot foglal)

- egy összetett értéket, egy koordinátát reprezentál.


Arra viszont oda kell figyelni, hogy van még egy különbség a class és a struct közt:

- ha a fene fenét eszik is, a struct-nak mindig lesz egy paraméter nélküli konstruktora

- a class esetében nem feltétlenül van.


Szóval a fenti implementációval felmerülhet egy kérdés: Probléma-e, hogy mindig van neki paraméter nélküli konstruktora? Ha igen, kénytelen vagy class-t használni.

2017. jan. 4. 21:07
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:

"Az hogy pl ebből:


public struct Bookmark

{

string nev;

int pozició;

}


Hogy csinálok ilyet:


public struct Bookmark

{

string nev;

int pozició;

Color szin; //ilyet

}"


Pont így, hogy később odaírod.

El nem tudom képzelni mit szeretnél kérdezni valójában.

2017. jan. 4. 21:12
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!