Laden...

Alle Variablen in einer Klasse abrufen?

Erstellt von MS Master vor 18 Jahren Letzter Beitrag vor 18 Jahren 3.357 Views
M
MS Master Themenstarter:in
132 Beiträge seit 2005
vor 18 Jahren
Alle Variablen in einer Klasse abrufen?

Hi all,

gibt es eine möglichkeit alle Variablen in einer Klasse per befehl abzurufen.

Also ich habe z.B.:

Class1.Variable1 = 1
Class1.Variable2 = 2
Class1.Variable3 = 3
Class1.Variable4 = 4

Und ich würde gerne ohne zu wissen wieviele Variablen es gibt, alle abrufen, und zwar so, das ich erfahre wie die Variable heist, also z.B. "Variable3", und welchen Wert sie aktuell hat, also z.B. "3".

Geht das bzw, gibt es dafür möglichkeiten ?

Danke schonmal im vorraus für evt. Tips/Anregungen

mfg

MS Master

M
456 Beiträge seit 2004
vor 18 Jahren

Dafür gibt's Reflection.
Mit GetType() kannst du dir ein Typobjekt geben lassen. Dann nutzt du GetFields() und enumerierst über alle Variablen deiner Klasse.
Die zurückgegebene FieldInfo-Klasse ermöglicht es dann, den Inhalt der Variablen auszuslesen (GetValue()).

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

_
416 Beiträge seit 2005
vor 18 Jahren

Hallo,

gehen tut erstmal alles.

typeof(MeineKlasse).getFields() 

sollte dir alle öffentlichen Felder zurückgeben.

Aber Reflection sollte man so oft wie möglich vermeiden. Schau dir mal die Klasse Hashtable an. Da kannst du auch beliebige Namen verwenden und diesen einen Wert zuweisen.

M
MS Master Themenstarter:in
132 Beiträge seit 2005
vor 18 Jahren

Hi,

danke für die Antowrten, werde das gleich morgen früh testen.

mfg

MS Master

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo MS Master,

wenn du meinen Rat aus Class.inhalteinervAriable statt Class.Variable- Geht das beherzigst 🙂
dann verwendest du einfach GetProperties statt GetFields.

herbivore

M
MS Master Themenstarter:in
132 Beiträge seit 2005
vor 18 Jahren

Hi,

wie schon im anderen tread geschrieben, verwende ich das schon so, wie du es mir empfohlen hast. Habe also schon unbewusst eine hähere Sicherheit in meinem Programm drinnen.

Vielen dank aber denoch für die Tips, das erleichtert gerade am Anfang das lernen doch merklich.

mfg

MS Master