Funkcja Multiply jest teraz dostępna dla TimeSpan !!!
Ale tylko dla .NET Core i .NET Standard .
Od .NET Core 2.0 (lub .NET Standard 2.1 ) można pomyślnie uruchomić następujący kod:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
Ograniczenia
Niemniej jednak należy zauważyć ( zgodnie z opisem w dokumentacji ), że dotyczy to tylko .NET Core 2.0 + i .NET Standard 2.1 +.
Na dzień dzisiejszy (26 listopada 2019) powyższy kod zawiedzie nawet w najnowszej wersji .NET Framework : 4.8 .
Jeśli wypróbujesz powyższy kod w aplikacji konsoli , na przykład z systemem .NET Core 1.1 lub starszym albo .NET Framework 4.8 lub niższym, zostanie zgłoszony następujący wyjątek:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:
'Operator '*' cannot be applied to operands of type 'System.TimeSpan' and 'int''
Dlaczego nie w .NET Framework?
Aby zrozumieć, dlaczego nie możemy użyć powyższego kodu w .NET Framework, pouczające jest to, co mówi Immo :
NET Core to otwarta, wieloplatformowa i szybko rozwijająca się wersja platformy .NET. Ze względu na swoją równoległą naturę może on wprowadzać zmiany, których nie możemy ryzykować zastosowania z powrotem do .NET Framework. Oznacza to, że .NET Core z czasem otrzyma nowe interfejsy API i funkcje językowe, których nie może zapewnić .NET Framework. W Build pokazaliśmy, jak interfejsy API plików są szybsze w .NET Core. Gdybyśmy wprowadzili te same zmiany do .NET Framework, moglibyśmy zepsuć istniejące aplikacje, a nie chcemy tego robić.