Multiply est maintenant disponible pour TimeSpan !!!
Mais uniquement pour .NET Core et .NET Standard .
Depuis .NET Core 2.0 (ou .NET Standard 2.1 ), vous pouvez exécuter avec succès le code suivant:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
Limites
Néanmoins, il est important de noter ( comme décrit dans le document ) que cela s'applique uniquement à .NET Core 2.0 + et .NET Standard 2.1 +.
À partir d'aujourd'hui (26 novembre 2019), le code ci-dessus échouera même dans la dernière version de .NET Framework : 4.8 .
Si vous essayez le code ci-dessus dans une application de console , par exemple, exécutant .NET Core 1.1 ou inférieur, ou .NET Framework 4.8 ou inférieur, vous serez renvoyé l'exception suivante:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Operator '*' cannot be applied to operands of type 'System.TimeSpan' and 'int''
Pourquoi pas dans .NET Framework?
Afin de comprendre pourquoi diable nous ne pouvons pas utiliser le code ci-dessus dans .NET Framework, il est instructif de voir ce que dit Immo :
.NET Core est la version open source, multiplateforme et à évolution rapide de .NET. En raison de sa nature côte à côte, il peut prendre des modifications que nous ne pouvons pas risquer de réappliquer à .NET Framework. Cela signifie que .NET Core obtiendra de nouvelles API et fonctionnalités de langage au fil du temps que .NET Framework ne peut pas. Lors de Build, nous avons montré une démonstration de la rapidité des API de fichiers sur .NET Core. Si nous mettons ces mêmes modifications dans .NET Framework, nous pourrions interrompre les applications existantes, et nous ne voulons pas le faire.