Multiply sekarang tersedia untuk TimeSpan !!!
Tetapi hanya untuk .NET Core dan .NET Standard .
Sejak .NET Core 2.0 (atau .NET Standard 2.1 ) Anda berhasil dapat menjalankan kode berikut:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
Batasan
Namun demikian, penting untuk dicatat ( seperti yang dijelaskan dalam dokumen ) bahwa ini hanya berlaku untuk .NET Core 2.0 +, dan .NET Standard 2.1 +.
Mulai hari ini (26 November 2019) kode di atas akan gagal bahkan dalam versi .NET Framework terbaru: 4.8 .
Jika Anda mencoba kode di atas dalam aplikasi Konsol , misalnya, menjalankan .NET Core 1.1 atau yang lebih rendah, atau .NET Framework 4.8 atau lebih rendah, Anda akan melihat pengecualian berikut:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'Operator' * 'tidak dapat diterapkan ke operan jenis' System.TimeSpan 'dan' int ''
Mengapa tidak di .NET Framework?
Untuk memahami mengapa kita tidak dapat menggunakan kode di atas dalam .NET Framework, sangat mencerahkan untuk melihat apa yang dikatakan Immo :
.NET Core adalah versi .NET sumber terbuka, lintas platform, dan bergerak cepat. Karena sifatnya yang berdampingan, dapat mengambil perubahan yang tidak dapat kami ambil risiko untuk menerapkan kembali ke .NET Framework. Ini berarti bahwa .NET Core akan mendapatkan API dan fitur bahasa baru dari waktu ke waktu yang tidak dapat dilakukan oleh .NET Framework. Di Build kami menunjukkan demo bagaimana API file lebih cepat di .NET Core. Jika kami memasukkan perubahan yang sama ke dalam .NET Framework, kami dapat merusak aplikasi yang ada, dan kami tidak ingin melakukannya.
TimeSpan.FromTicks((long)(duration.Ticks*multiplier))