Multiply พร้อมใช้งานแล้วสำหรับ TimeSpan !!!
แต่สำหรับ. NET Coreและ. NET Standard เท่านั้นเท่านั้น
เนื่องจาก. NET Core 2.0 (หรือ. NET Standard 2.1 ) คุณสามารถรันโค้ดต่อไปนี้ได้สำเร็จ:
Console.WriteLine(TimeSpan.FromSeconds(45) * 3);
ข้อ จำกัด
อย่างไรก็ตามสิ่งสำคัญที่ควรทราบ ( ตามที่อธิบายไว้ใน docu ) ใช้กับ. NET Core 2.0 + และ. NET Standard 2.1 เท่านั้น + เท่านั้น
ณ วันนี้ (26 พฤศจิกายน 2019) โค้ดด้านบนจะล้มเหลวแม้ใน. NET Frameworkเวอร์ชันล่าสุด: 4.8 4.8
หากคุณลองใช้โค้ดด้านบนในแอปพลิเคชันคอนโซลตัวอย่างเช่นรัน. NET Core 1.1หรือต่ำกว่าหรือ. NET Framework 4.8หรือต่ำกว่าคุณจะได้รับข้อยกเว้นต่อไปนี้:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: ไม่สามารถใช้ 'Operator' * 'กับตัวถูกดำเนินการประเภท' System.TimeSpan 'และ' int ''
ทำไมไม่อยู่ใน. NET Framework?
เพื่อให้เข้าใจว่าเหตุใดบนโลกนี้เราจึงไม่สามารถใช้โค้ดด้านบนใน. NET Framework ได้เราจะให้ความกระจ่างในสิ่งที่Immoกล่าวว่า :
.NET Coreเป็น. NET เวอร์ชันโอเพ่นซอร์สข้ามแพลตฟอร์มและการเคลื่อนไหวอย่างรวดเร็ว เนื่องจากลักษณะแบบเคียงข้างกันจึงสามารถรับการเปลี่ยนแปลงที่เราไม่สามารถเสี่ยงต่อการนำกลับไปใช้. NET Framework ได้ ซึ่งหมายความว่า. NET Core จะได้รับ API และคุณลักษณะภาษาใหม่เมื่อเวลาผ่านไปซึ่ง. NET Framework ไม่สามารถทำได้ ที่ Build เราได้สาธิตวิธีการที่ API ของไฟล์เร็วกว่าบน. NET Core หากเราใส่การเปลี่ยนแปลงเดียวกันนี้ลงใน. NET Framework เราอาจทำลายแอปพลิเคชันที่มีอยู่ได้และเราไม่ต้องการทำเช่นนั้น
TimeSpan.FromTicks((long)(duration.Ticks*multiplier))