Neu in .NET 7.0 [29]: Microseconds und Nanoseconds

Microsoft erweitert die Klassen DateTime, TimeStamp, DateTimeOffset und TimeOnly in .NET 7.0 um die Eigenschaften Microseconds und Nanoseconds.

In Pocket speichern vorlesen Druckansicht 20 Kommentare lesen
Wecker, Zeit

(Bild: by-studio/Shutterstock.com)

Lesezeit: 1 Min.
Von
  • Dr. Holger Schwichtenberg

Die Klassen DateTime, TimeStamp, DateTimeOffset und TimeOnly bieten in .NET 7.0 auch die Eigenschaften Microseconds und Nanoseconds. Bisher gab es als kleinste Einheit nur den Tick, der 100 Nanosekunden entspricht.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

Die neuen Eigenschaften sind als berechnete Properties implementiert.

public const long NanosecondsPerTick = 100;
public const long TicksPerMicrosecond = 10;
public double TotalMicroseconds => (double)_ticks / TicksPerMicrosecond;
public double TotalNanoseconds => (double)_ticks * NanosecondsPerTick;

Das Gleiche konnten Entwicklerinnen und Entwickler auch zuvor schon einfach selbst implementieren. Die neuen Properties sind aber intuitiver zu verstehen, eine Hilfe für alle, die nicht auswendig wissen, wie viel Zeit ein Tick ist.

Dazu ein Anwendungsbeispiel:

var startZeitunkt = DateTime.Now;
int x = 40;
int y = 2;
int z = x + y;
Console.WriteLine("Ergebnis: " + z);
var endeZeitunkt = DateTime.Now;
Console.WriteLine("Das zu errechnen, dauerte so lange:");
TimeSpan ts = endeZeitunkt - startZeitunkt;
Console.WriteLine(ts.TotalMilliseconds + " ms");
Console.WriteLine(ts.TotalMicroseconds + " µs"); // 1 Millisekunde == 1000 Mikrosekunden 
Console.WriteLine(ts.Ticks + " ticks"); // 1 Tick = 100 Nanosekunden
Console.WriteLine(ts.TotalNanoseconds + " ns"); // 1 Mikrosekunde == 1000 Nanosekunden

Das Beispiel liefert diese Ausgabe:

(map)