ใน C # ฉันเริ่มเห็นวิธีการมายากลเหล่านี้ทั้งหมดโผล่ขึ้นมาโดยไม่ต้องสำรองข้อมูลโดยอินเทอร์เฟซ ทำไมถึงถูกเลือก?
ให้ฉันอธิบาย
ก่อนหน้านี้ใน C # หากวัตถุใช้IEnumerable
อินเตอร์เฟสมันจะforeach
วนซ้ำโดยอัตโนมัติ นั่นทำให้รู้สึกถึงฉันเนื่องจากมีการสำรองข้อมูลโดยอินเทอร์เฟซและถ้าฉันต้องมีIterator
ฟังก์ชันของตัวเองในชั้นเรียนที่ถูกทำซ้ำฉันสามารถทำได้โดยไม่ต้องกังวลว่ามันจะมีความหมายอย่างอื่นอย่างน่าอัศจรรย์
เห็นได้ชัดว่าตอนนี้ (ไม่แน่ใจว่าเมื่อใด) อินเตอร์เฟสเหล่านี้ไม่จำเป็นอีกต่อไป เพียงแค่ต้องมีการแปลงชื่อที่ถูกต้อง
อีกตัวอย่างหนึ่งคือการทำให้ awaitable วัตถุใด ๆ โดยมีวิธีการตั้งชื่อตรง GetAwaiter
ที่มีคุณสมบัติเฉพาะไม่กี่
ทำไมไม่สร้างอินเทอร์เฟซอย่างที่พวกเขาทำกับIEnumerable
หรือINotifyPropertyChanged
สำรอง "เวทย์มนตร์" นี้ขึ้นมาแบบคงที่?
รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ฉันหมายถึงที่นี่:
http://blog.nem.ec/2014/01/01/magic-methods-c-sharp/
อะไรคือข้อดีและข้อเสียของวิธีการเวทย์มนตร์และมีที่ไหนออนไลน์ที่ฉันสามารถหาอะไรเกี่ยวกับสาเหตุการตัดสินใจเหล่านี้?
async
/ await
แล้วนั่นจะใช้ได้กับโค้ดที่เขียนหลังจาก. NET 4.5 กลายเป็นที่แพร่หลายมากพอที่จะเป็นเป้าหมายที่ทำงานได้…ซึ่งโดยทั่วไปแล้วในตอนนี้ แต่การแปลวากยสัมพันธ์อย่างหมดจดเป็นการเรียกเมธอดทำให้ฉันสามารถเพิ่มawait
ฟังก์ชันการทำงานให้กับประเภทที่มีอยู่หลังจากข้อเท็จจริง
foreach
วนลูปในตอนแรก มีไม่เคยได้รับความต้องการสำหรับวัตถุที่จะใช้IEnumerable
สำหรับforeach
การทำงาน เป็นเพียงการประชุมที่จะทำเช่นนั้น