Функція множення тепер доступна для TimeSpan !!!
Але лише для .NET Core та .NET Standard .
Оскільки .NET Core 2.0 (або .NET Standard 2.1 ) ви можете успішно запустити такий код:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
Обмеження
Тим не менш, важливо зазначити ( як описано в документі ), що це стосується лише .NET Core 2.0+ та .NET Standard 2.1 +.
На сьогодні (26 листопада 2019 р.) Код вище зазнає збою навіть в останній версії .NET Framework : 4.8 .
Якщо ви спробуєте наведений вище код у програмі Console , наприклад, під керуванням .NET Core 1.1 або старішої версії , або .NET Framework 4.8 або старішої версії, з’явиться таке виняток:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Operator '*' cannot be applied to operands of type 'System.TimeSpan' and 'int''
Чому б не .NET Framework?
Для того, щоб зрозуміти, чому на Землі ми не можемо використовувати наведений вище код у .NET Framework, просвітницьше бачити, що говорить Іммо :
.NET Core - це версія .NET з відкритим кодом, міжплатформна та швидка версія. Через його паралельний характер він може вносити зміни, які ми не можемо ризикувати застосувати назад до .NET Framework. Це означає, що .NET Core з часом отримає нові API та мовні функції, які не може .NET Framework. У Build ми продемонстрували демонстрацію того, як API файлів швидше працюють на .NET Core. Якщо ми внесемо ті самі зміни в .NET Framework, ми могли б зламати існуючі програми, і ми не хочемо цього робити.