Ich muss die Datumsangaben für eine Reihe von Objekten anpassen.
Ich möchte Schleife durch die Eigenschaften der Klasse und wenn der Typ ist dateTime entsprechend anpassen.
Gibt es irgendeine Art von "Typbeschreibung", die ich verwenden kann?
Ich muss die Datumsangaben für eine Reihe von Objekten anpassen.
Ich möchte Schleife durch die Eigenschaften der Klasse und wenn der Typ ist dateTime entsprechend anpassen.
Gibt es irgendeine Art von "Typbeschreibung", die ich verwenden kann?
Für sehr schnelle Antworten und Hinweise auf diese Frage, und wenn Sie PowerShell zur Verfügung haben (Vista / Windows 7, Windows 2008 hat es bereits installiert), können Sie einfach die Konsole starten und für DateTime z.B. tun
Get-Date | Get-Member
Das listet Ihnen die Mitglieder einer DateTime-Instanz auf. Sie können sich auch die statischen Mitglieder ansehen:
Get-Date | Get-Member -Static
Wenn Sie sich Gedanken über die Auswirkungen der Reflexion auf die Leistung machen, könnten Sie sich für folgende Themen interessieren Fasterflect eine Bibliothek, die das Abfragen und den Zugriff auf Mitglieder einfacher und schneller macht.
Zum Beispiel könnte der Code von MaxGuernseyIII mit Fasterflect wie folgt umgeschrieben werden:
var query = from property in typeof(HasDateTimes).Properties()
where property.Type() == typeof(DateTime)
select p;
Array.ForEach( query.ToArray(), p => Console.WriteLine( p.Name ) );
Fasterflect verwendet eine leichtgewichtige Codegenerierung, um die Zugriffe zu beschleunigen (um den Faktor 2-5 oder mit nahezu nativer Geschwindigkeit, wenn Sie die generierten Delegierten zwischenspeichern und direkt aufrufen). Die Abfrage von Mitgliedern ist im Allgemeinen einfacher und bequemer, aber nicht schneller. Beachten Sie, dass diese Zahlen nicht den erheblichen anfänglichen Overhead der JIT-Kompilierung des generierten Codes beinhalten, so dass Leistungsgewinne nur bei wiederholten Zugriffen sichtbar werden.
Haftungsausschluss: Ich bin an dem Projekt beteiligt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.