คำถามติดแท็ก delegates

ผู้รับมอบสิทธิ์สามารถอ้างถึงแนวคิดหลายประการ ออบเจ็กต์สามารถพึ่งพาอีก (ผู้รับมอบสิทธิ์) เพื่อทำหน้าที่ การมอบสิทธิ์ยังสามารถอ้างถึงคุณลักษณะภาษาการเขียนโปรแกรมโดยใช้กฎการค้นหาวิธีการสำหรับการโทรออกด้วยตนเอง ใน C # ผู้ร่วมประชุมจะกำหนดวิธีการเรียกใช้เมื่อเหตุการณ์ถูกทริกเกอร์



12
วิธีการส่งผ่านเป็นพารามิเตอร์โดยใช้ C #
ฉันมีหลายวิธีทั้งหมดที่มีลายเซ็นเดียวกัน (พารามิเตอร์และค่าส่งคืน) แต่ชื่อแตกต่างกันและ internals ของวิธีการจะแตกต่างกัน ฉันต้องการส่งชื่อวิธีการเพื่อเรียกใช้ไปยังวิธีอื่นที่จะเรียกใช้วิธีการส่งผ่าน public int Method1(string) { ... do something return myInt; } public int Method2(string) { ... do something different return myInt; } public bool RunTheMethod([Method Name passed in here] myMethodName) { ... do stuff int i = myMethodName("My String"); ... do more stuff return true; …
695 c#  .net  methods  delegates 

6
ฉันจะทำให้การอ้างอิงโปรโตคอลที่อ่อนแอใน 'บริสุทธิ์' Swift (ไม่มี @objc) ได้อย่างไร
weakดูเหมือนว่าการอ้างอิงจะไม่ทำงานใน Swift ยกเว้นว่ามีการprotocolประกาศเป็น@objcซึ่งฉันไม่ต้องการในแอพ Swift ที่บริสุทธิ์ รหัสนี้ให้ข้อผิดพลาดในการคอมไพล์ ( weakไม่สามารถใช้กับประเภทที่ไม่ใช่คลาสMyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } ฉันต้องนำหน้าโปรโตคอลด้วย@objcแล้วก็ใช้งานได้ คำถาม: อะไรคือวิธีที่รวดเร็ว 'บริสุทธิ์' ในการบรรลุเป้าหมายweak delegate?

11
อะไรคือความแตกต่างระหว่างผู้ได้รับมอบหมายและเหตุการณ์?
Наэтотвопросестьответына Stack Overflow нарусском : กิจกรรมและตัวแทน: вчемотличие? อะไรคือความแตกต่างระหว่างผู้ได้รับมอบหมายและเหตุการณ์? ทั้งคู่ไม่เก็บการอ้างอิงถึงฟังก์ชันที่สามารถเรียกใช้งานได้หรือ
317 c#  events  delegates  glossary 

11
ยกเลิกการสมัครสมาชิกแบบไม่ระบุชื่อใน C #
เป็นไปได้ไหมที่จะยกเลิกการสมัครสมาชิกโดยไม่ระบุชื่อจากกิจกรรม? ถ้าฉันสมัครสมาชิกกิจกรรมเช่นนี้: void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod; ฉันสามารถยกเลิกการสมัครสมาชิกเช่นนี้: MyEvent -= MyMethod; แต่ถ้าฉันสมัครโดยใช้วิธีไม่ระบุชื่อ: MyEvent += delegate(){Console.WriteLine("I did it!");}; เป็นไปได้ไหมที่จะยกเลิกการสมัครสมาชิกโดยไม่ระบุชื่อ ถ้าเป็นเช่นนั้นได้อย่างไร

14
ผู้แทน Java
ภาษา Java มีคุณสมบัติของผู้ร่วมประชุมคล้ายกับที่ C # มีการสนับสนุนสำหรับผู้ได้รับมอบหมายหรือไม่?
194 java  delegates 


4
ทำไมผู้แทน Objective-C ถึงได้รับมอบหมายคุณสมบัติแทนการเก็บรักษา?
ฉันท่องผ่านบล็อกที่ยอดเยี่ยมซึ่งดูแลโดย Scott Stevenson และฉันพยายามเข้าใจแนวคิดพื้นฐานของ Objective-C ในการมอบหมายผู้มอบหมาย 'มอบหมาย' คุณสมบัติ 'เทียบกับ' รักษา ' หมายเหตุทั้งคู่เหมือนกันในสภาพแวดล้อมที่เก็บขยะ ฉันส่วนใหญ่เกี่ยวข้องกับสภาพแวดล้อมที่ไม่ใช่ GC (เช่น: iPhone) โดยตรงจากบล็อกของสกอตต์: "คีย์เวิร์ด assign จะสร้าง setter ซึ่งกำหนดค่าให้กับตัวแปรอินสแตนซ์โดยตรงแทนที่จะคัดลอกหรือเก็บไว้ซึ่งจะดีที่สุดสำหรับประเภทดั้งเดิมเช่น NSInteger และ CGFloat หรือวัตถุที่คุณไม่ได้เป็นเจ้าของโดยตรงเช่น" หมายความว่าคุณไม่ได้เป็นเจ้าของวัตถุผู้รับมอบสิทธิ์โดยตรง ฉันมักจะรักษาผู้ได้รับมอบหมายของฉันเพราะถ้าฉันไม่ต้องการให้พวกเขาออกไปสู่ห้วงลึก ฉันมักจะนามธรรม UITableViewController ห่างจากแหล่งข้อมูลที่เกี่ยวข้องและผู้ได้รับมอบหมายด้วย ฉันยังคงวัตถุเฉพาะนั้นไว้ ฉันต้องการให้แน่ใจว่ามันจะไม่หายไปดังนั้น UITableView ของฉันจะมีตัวแทนอยู่รอบ ๆ เสมอ บางคนสามารถอธิบายเพิ่มเติมว่าที่ไหน / ทำไมฉันจึงผิดฉันจึงสามารถเข้าใจกระบวนทัศน์ทั่วไปนี้ในการเขียนโปรแกรม Objective-C 2.0 ของการใช้คุณสมบัติมอบหมายให้กับผู้ได้รับมอบหมายแทนที่จะเก็บไว้? ขอบคุณ!

4
วิธีที่ดีที่สุดในการสื่อสารระหว่างตัวควบคุมมุมมองคืออะไร
ด้วยความใหม่ในวัตถุประสงค์ -c, cocoa และ iPhone dev โดยทั่วไปฉันมีความปรารถนาอย่างแรงกล้าที่จะใช้ภาษาและกรอบการทำงานให้เกิดประโยชน์สูงสุด หนึ่งในแหล่งข้อมูลที่ฉันใช้คือบันทึกย่อของชั้นเรียน CS193P ของ Stanford ที่พวกเขาทิ้งไว้บนเว็บ ประกอบด้วยบันทึกการบรรยายงานที่มอบหมายและรหัสตัวอย่างและเนื่องจากหลักสูตรได้รับการพัฒนาโดย Apple dev's ฉันจึงคิดว่าเป็น "จากปากม้า" แน่นอน เว็บไซต์ชั้นเรียน: http://www.stanford.edu/class/cs193p/cgi-bin/index.php การบรรยาย 08 เกี่ยวข้องกับการมอบหมายให้สร้างแอปที่ใช้ UINavigationController ซึ่งมี UIViewControllers หลายรายการที่ถูกส่งไปยังสแต็ก UINavigationController นั่นคือวิธีที่ UINavigationController ทำงาน นั่นเป็นเหตุผล อย่างไรก็ตามมีคำเตือนที่เข้มงวดในสไลด์เกี่ยวกับการสื่อสารระหว่าง UIViewControllers ของคุณ ฉันจะอ้างอิงจากเรื่องร้ายแรงของสไลด์: http://cs193p.stanford.edu/downloads/08-NavigationTabBarControllers.pdf หน้า 16/51: วิธีที่จะไม่แบ่งปันข้อมูล ตัวแปรทั่วโลกหรือซิงเกิลตัน ซึ่งรวมถึงตัวแทนแอปพลิเคชันของคุณ การพึ่งพาโดยตรงทำให้รหัสของคุณใช้ซ้ำได้น้อยลง และยากต่อการดีบัก & ทดสอบ ตกลง. ฉันลงกับที่ อย่าสุ่มโยนวิธีการทั้งหมดของคุณที่จะใช้สำหรับการสื่อสารระหว่าง viewcontroller …

13
ผู้แทนคืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันสับสนว่าบทบาทที่แท้จริงของผู้รับมอบสิทธิ์คืออะไร ฉันถูกถามคำถามนี้หลายครั้งในการสัมภาษณ์ของฉัน แต่ฉันไม่คิดว่าผู้สัมภาษณ์พอใจกับคำตอบของฉัน ใครสามารถบอกคำจำกัดความที่ดีที่สุดในหนึ่งประโยคพร้อมตัวอย่างที่ใช้ได้จริง
152 oop  delegates 


11
ตัวชี้ฟังก์ชั่นใน Java
นี่อาจเป็นสิ่งที่ธรรมดาและน่ารำคาญ แต่ดูเหมือนว่าฉันมีปัญหาในการหาคำตอบที่เป็นรูปธรรม ใน C # มีแนวคิดของผู้ได้รับมอบหมายซึ่งเกี่ยวข้องอย่างยิ่งกับแนวคิดของตัวชี้ฟังก์ชั่นจาก C ++ มีฟังก์ชั่นที่คล้ายกันใน Java หรือไม่? เนื่องจากพอยน์เตอร์ขาดหายไปวิธีที่ดีที่สุดเกี่ยวกับเรื่องนี้คืออะไร และเพื่อความชัดเจนเรากำลังพูดถึงชั้นหนึ่งที่นี่

6
ผู้รับมอบสิทธิ์ C ++ คืออะไร
แนวคิดทั่วไปของผู้รับมอบสิทธิ์ใน C ++ คืออะไร? พวกเขาคืออะไรพวกเขาจะใช้อย่างไรและพวกเขาจะใช้เพื่ออะไร ฉันต้องการเรียนรู้เกี่ยวกับพวกเขาเป็นครั้งแรกในแบบ 'กล่องดำ' แต่ข้อมูลเล็กน้อยเกี่ยวกับความกล้าหาญของสิ่งเหล่านี้ก็จะดีเช่นกัน นี่ไม่ใช่ C ++ ที่บริสุทธิ์ที่สุดหรือสะอาดที่สุด แต่ฉันสังเกตว่า codebase ที่ฉันใช้มีมากมาย ฉันหวังว่าจะเข้าใจพวกเขามากพอดังนั้นฉันจึงสามารถใช้พวกเขาได้และไม่ต้องเจาะลึกถึงแม่แบบเทมเพลตที่น่ากลัว บทความThe Code Projectทั้งสองนี้อธิบายสิ่งที่ฉันหมายถึง แต่ไม่ชัดเจนโดยเฉพาะ: ตัวชี้ฟังก์ชันสมาชิกและผู้รับ C ++ ที่เร็วที่สุดที่เป็นไปได้ ผู้ได้รับมอบหมายอย่างรวดเร็ว C ++ เป็นไปไม่ได้

10
ฉันจะล้างการสมัครรับข้อมูลกิจกรรมใน C # ได้อย่างไร
รับคลาส C # ต่อไปนี้: c1 { event EventHandler someEvent; } หากมีจำนวนมากของการสมัครเป็นสมาชิกc1ของsomeEventเหตุการณ์และฉันต้องการที่จะล้างพวกเขาทุกสิ่งที่เป็นวิธีที่ดีที่สุดเพื่อให้บรรลุนี้? นอกจากนี้ยังพิจารณาว่าการสมัครสมาชิกกับเหตุการณ์นี้อาจเป็น / เป็น lambdas / ผู้ได้รับมอบอำนาจโดยไม่ระบุชื่อ ปัจจุบันโซลูชันของฉันคือการเพิ่มResetSubscriptions()วิธีการc1ที่กำหนดsomeEventเป็นโมฆะ ฉันไม่รู้ว่าสิ่งนี้มีผลที่มองไม่เห็นหรือไม่
141 c#  .net  events  delegates 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.