Kezdőoldal » Számítástechnika » Programozás » C# Statikus Változó létrehozás...

Davidson996 kérdése:

C# Statikus Változó létrehozása adatokkal?

Figyelt kérdés

Jávában használtam ilyet hogy:

ClassType myVariableName

{

override toString()

{

return "ez egy módosított változó";

}

}

Ebben az esetben létrehoztam egy ClassType változót, viszont csakis ennek a változónak ha elindítom a ToString() metódusát akkor azt adja ki amit beírtam.

C#-ban ehhez valamiben hasonló dolgot szeretnék csinálni, csak nem metódust akarok felülírni (azt sem találtam meg ha van ilyen C#ban), hanem a változó alváltozóit szeretném módosítani. Ugye normál esetben létrehozom a változót és módosítgatom:


ASD myASD = new ASD();

ASD.X = 123;

ASD.Y = "asdd"...


Viszont én static változót akarok létrehozni, ebben az esetben a kódban nem szerepel parancs ennek a létrehozására, leszámítva azt az egy sort:


static ASD myStaticAsd = new ASD();


de ezután nem tudom a belsőbb dolgokat átírni benne, csak létrehoztam mint valami üres tárolót. A módosítást pedig nem tudom hova írni, mert nem egy metódusban szerepel hanem csak úgy .. van. Mivel statikus. Így néz ki egyenlőre:


public class Skin

{

public Skin()

{

//ide nem rakhatom mert akkor minden új Skin típusú változónál újraírná a DefaultSkin statikus változómat.

}


//az osztály részletei, változók, metódusok


static Skin DefaultSkin = new Skin();

// --> nincs hol változtatni a belsejét <--

}


Szerintem ez lehetséges, legalábbis nagyon remélem :)



2013. aug. 27. 17:30
 1/3 anonim ***** válasza:
100%

Nem teljesen értem, mire akarod ezt használni (lehet, hogy lenne jobb megoldás is), így a kérdésed megválaszolására szorítkozom. Legegyszerűbben a statikus konstruktorral tudod megoldani, amit akarsz. Kódod ennek megfelelően módosítva:


public class Skin

{


public static Skin() //Statikus konstruktor, paramétere nem lehet

{

//DefaultSkin-t itt konfigurálhatod

}


public Skin()

{

// standard konstruktor

}


//az osztály részletei, változók, metódusok


static Skin DefaultSkin = new Skin();

// --> nincs hol változtatni a belsejét <--

}

2013. aug. 27. 20:12
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Kösz a választ, valami ilyesmire gondoltam én is :)
2013. aug. 27. 21:26
 3/3 anonim ***** válasza:
#1-nek igaza van, én adtam neki zöldet, de kis hiba (és ezt neked írom kérdező), hogy statikus konstruktor esetében nem adható meg hozzáférés azonosító.
2013. aug. 28. 11:40
Hasznos számodra ez a válasz?

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!