Multiplizieren ist jetzt für TimeSpan verfügbar !!!
Aber nur für .NET Core und .NET Standard .
Seit .NET Core 2.0 (oder .NET Standard 2.1 ) können Sie den folgenden Code erfolgreich ausführen:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
// Prints:
// 00:02:15
Einschränkungen
Es ist jedoch wichtig zu beachten ( wie im Dokument beschrieben ), dass dies nur für .NET Core 2.0 + und .NET Standard 2.1 + gilt.
Ab heute (26. November 2019) schlägt der obige Code auch in der neuesten .NET Framework- Version fehl : 4.8 .
Wenn Sie den obigen Code in einer Konsolenanwendung ausprobieren , z. B. .NET Core 1.1 oder niedriger oder .NET Framework 4.8 oder niedriger, wird die folgende Ausnahme ausgelöst:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Operator '*' cannot be applied to operands of type 'System.TimeSpan' and 'int''
Warum nicht in .NET Framework?
Um zu verstehen, warum wir den obigen Code in .NET Framework nicht verwenden können, ist es aufschlussreich zu sehen, was Immo sagt :
.NET Core ist die Open Source-, plattformübergreifende und sich schnell bewegende Version von .NET. Aufgrund seiner Nebeneinanderstellung können Änderungen vorgenommen werden, die wir nicht riskieren können, wieder auf .NET Framework anzuwenden. Dies bedeutet, dass .NET Core im Laufe der Zeit neue APIs und Sprachfunktionen erhält, die .NET Framework nicht kann. Bei Build haben wir eine Demo gezeigt, wie die Datei-APIs unter .NET Core schneller sind. Wenn wir dieselben Änderungen in .NET Framework übernehmen, können wir vorhandene Anwendungen beschädigen, und das möchten wir nicht.