Hallo,
ich hab hier folgendes:
Ich hab 2 Objekte (beides Textboxen in dem Fall), sowie zwei PropertInfos von denen (beide vom Property "Text").
Ich will nun prüfen ob die Werte der PropertyInfos gleich sind, ohne speziell casten zu müssen. Sonst müsst ich wieder für jeden Datentyp einen neuen Comparer basteln...
Geht das irgendwie?
...GetValue(...) == ...GetValue(...) geht nicht 😦
Danke euch!
TBR
Hallo TBR,
vielleicht hilft dir die Diskussion Get property value from string using reflection in C# weiter. Ansonsten mal die anderen Suchergebnisse für Googlesuche nach c# reflection get property value durchgucken ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Das hilft mir nicht weiter, du hast mich wohl missverstanden.
Ich will die Eigenschaften von beiden Objekten miteinadner vergleichen ohne zu Casten. Aber Objekt == Objekt geht nicht, jedenfalls bei string nicht.
Es wär halt viel Aufwand für jeden Datentyp den ich brauch wieder eine Klasse oder Eigenschaft oder what ever zu basteln ...
Irgendwie muss mans doch lösen können oder?
Hallo TBR,
versuche es mal mit Equals
obj1.Equals(obj2);
Gruß
Michael
Hallo tbr,
im Blogpost Comparing the properties of two objects via Reflection and C# habe ich unter Directly comparing values folgenden Code gefunden:
object valueA;
object valueB;
valueA = propertyInfo.GetValue(objectA, null);
valueB = propertyInfo.GetValue(objectB, null);
bool result;
IComparable selfValueComparer;
selfValueComparer = valueA as IComparable;
if (valueA == null && valueB != null || valueA != null && valueB == null)
result = false; // one of the values is null
else if (selfValueComparer != null && selfValueComparer.CompareTo(valueB) != 0)
result = false; // the comparison using IComparable failed
else if (!object.Equals(valueA, valueB))
result = false; // the comparison using Equals failed
else
result = true; // match
return result;
Hier wird auf verschiedene Vergleichsstrategien zurückgegriffen – versuch es doch mal damit.
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Ohje ...
Das Sample hab ich gefunden und versucht, war aber dann nich das richtige und das anpassen ging irgendwie schwer - war ein wenig verplant.
Da bin ich auch ned auf die Idee gekommen das zu nehmen ...
Aber danke 😃 Es geht nun tatsächlich 😃
Es müsste doch grundsätzlich auch gehen, wenn man erst Convert.ChangeType(value1, typeof(value1)) auf beide anwendet und dann gleich immer Equals benutzt, oder ? Zumindest bei primitiven Typen...
"It is not wise to be wise" - Sun Tzu
Hallo Lynix,
hm, kommt mir komisch vor, den Typ der Objekte vor dem Vergleichen zu ändern.
herbivore