Iterieren ueber Objektattribute
-
Hey,
gibt es vielleicht eine Moeglichkeit ueber die Attribute eines Objektes zu iterieren.
Hier mal ein Beispiel, wie ich es meine:class Image { public int ID = 0; public string Filename = "Test"; } static class Comparator { /* * Gibt zurueck ob zwei Bilder die gleichen Werte enthaelt */ static bool compare(Image img1, Image img2) { // Wie kann ich ueber die public Attribute der Images iterieren und Vergleich // Hier die umstaendliche Variante if (img1.ID == img2.ID && img1.Filename == img2.Filename) { return true; } else return false; } }
Image enthaelt aber in Wirklichkeit noch viel mehr Attribute. Moechte nun nicht jedes in der Form wie oben aufschreiben, d.h. umstaendlich.
Habt ihr eine Idee? Gibt es da eine Moeglichkeit?
-
Das Stichwort was du suchst heißt Reflection.
-
Zum rumspielen:
class Image { public int ID = 0; public string Filename = "Test"; public double Pi { get; set; } } static void Main(string[] args) { Image image = new Image { Pi = 3.1 }; Type type = typeof(Image); foreach (var field in type.GetFields()) Console.WriteLine(field.GetValue(image)); foreach (var property in type.GetProperties()) Console.WriteLine(property.GetValue(image, null)); }