क्या सी # में एक घटना को दूसरे से कनेक्ट करना संभव है ताकि पहले ईवेंट उत्सर्जित हो जाए? एकमात्र तरीका मैं देख सकता हूं कि एक स्टब फ़ंक्शन बनाना है जो दूसरे ईवेंट को छोड़ देगा और इस फ़ंक्शन में पहली घटना को कनेक्ट करेगा।सी # में घटना के लिए घटना की सदस्यता लें?
class Ui { public event EventHandler OnClick; }
class Logic { public event EventHandler OnExit; }
var ui = new Ui();
var logic = new Logic();
ui.OnClick += logic.OnExit; // Not working.
ui.OnClick += (a, b) => logic.OnExit; // Not working either :(.
शायद यह कुछ डेकोरेटर उपलब्ध है या कुछ काला जादू कि ठूंठ कार्यों के बिना श्रृंखला घटनाओं के लिए अनुमति देता है: संकलक घटना या anonymouse कार्य करने के लिए घटना/लैम्ब्डा है कि एक और घटना कॉल करने के लिए घटना कनेक्ट करने के लिए नहीं करना चाहते?
udpate करेगा यह युग्मन युग्मन - यह कहता है कि यह सब^_^है। – grigoryvp
यह ठीक है बिंदु। हैंडलर की सूची उस ऑब्जेक्ट के लिए निजी है जो डिज़ाइन द्वारा ईवेंट का मालिक है। इसका कारण यह है कि अकेले ऑब्जेक्ट को नियंत्रित करना चाहिए कि हैंडलर कब और कैसे आते हैं। यह मूल encapsulation है। यदि आप encapsulation तोड़ना चाहते हैं, तो आपको इसके लिए एक विशेष हैच प्रदान करना होगा, और आपके वर्गों को इसके बारे में पता होना चाहिए - इसलिए युग्मन करना। आप जो पूछ रहे हैं वह वाकई से अलग नहीं है "क्या मैं अपने वर्गों में से किसी एक के निजी क्षेत्र तक पहुंच सकता हूं?"। –
तो मूल रूप से मुझे बस इतना करना है कि सब्सक्रिप्शन कोड को उस दूसरे श्रेणी में ले जाएं जो दूसरे ईवेंट का मालिक हो? :) – grigoryvp