Multiplicar ahora está disponible para TimeSpan !!!
Pero solo para .NET Core y .NET Standard .
Desde .NET Core 2.0 (o .NET Standard 2.1 ) puede ejecutar correctamente el siguiente código:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
Limitaciones
Sin embargo, es importante tener en cuenta ( como se describe en el documento ) que esto solo se aplica a .NET Core 2.0 + y .NET Standard 2.1 +.
A partir de hoy (26 de noviembre de 2019), el código anterior fallará incluso en la última versión de .NET Framework : 4.8 .
Si prueba el código anterior en una aplicación de consola , por ejemplo, ejecutando .NET Core 1.1 o inferior, o .NET Framework 4.8 o inferior, se le lanzará la siguiente excepción:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Operator '*' cannot be applied to operands of type 'System.TimeSpan' and 'int''
¿Por qué no en .NET Framework?
Para entender por qué diablos no podemos usar el código anterior en .NET Framework, es esclarecedor ver lo que dice Immo :
.NET Core es la versión de código abierto, multiplataforma y de rápido movimiento de .NET. Debido a su naturaleza paralela, puede tomar cambios que no podemos arriesgarnos a aplicar a .NET Framework. Esto significa que .NET Core obtendrá nuevas API y características de lenguaje con el tiempo que .NET Framework no puede. En Build, mostramos una demostración de cómo las API de archivos son más rápidas en .NET Core. Si ponemos esos mismos cambios en .NET Framework, podríamos romper las aplicaciones existentes, y no queremos hacer eso.