में किसी ईवेंट का GetInvocationList मैं डब्ल्यूसीएफ एप्लिकेशन (सच्चा बाबर से) के उदाहरण का पालन करके कुछ डब्ल्यूसीएफ सिद्धांतों को सीखने की कोशिश कर रहा हूं।VB.NET
अब मैं VB.NET
private void BroadcastMessage(ChatEventArgs e)
{
ChatEventHandler temp = ChatEvent;
if (temp != null)
{
foreach (ChatEventHandler handler in temp.GetInvocationList())
{
handler.BeginInvoke(this, e, new AsyncCallback(EndAsync), null);
}
}
}
में निम्नलिखित समारोह कन्वर्ट करने के लिए चाहते हैं, लेकिन मैं, कुछ समस्याएं हैं क्योंकि निम्न कोड संकलक द्वारा स्वीकार नहीं किया है
Private Sub BroadcastMessage(ByVal e As ChatEventArgs)
Dim handlers As EventHandler(Of ChatEventArgs) = ChatEvent
If handlers IsNot Nothing Then
For Each handler As EventHandler(Of ChatEventArgs) In handlers.GetInvocationList()
handler.BeginInvoke(Me, e, New AsyncCallback(AddressOf EndAsync), Nothing)
Next
End If
End Sub
यह
कहते हैंसार्वजनिक साझा ईवेंट ChatEvent (प्रेषक ऑब्जेक्ट के रूप में, ई ChatEventArgs के रूप में) 'एक है घटना, और बात करने के लिए आ रहा है सीधे
नहीं कहा जा सकता, यह तो संचालकों किसी अन्य तरीके से एक निश्चित घटना से जुड़ा हुआ मिलता है VB.NET में संभव है?
बस ध्यान रखें कि आप अपनी कक्षा में एक अनियंत्रित सदस्य का उपयोग कर रहे हैं, और (जब तक मुझे गलत नहीं लगता) इस नामकरण नीति को भविष्य के कंपाइलर संस्करणों में रहने की गारंटी नहीं है। –
@Adam - हाँ, निश्चित रूप से अनियंत्रित, जहां तक मैंने देखा है, लेकिन मैं उन्हें तब तक नहीं देख सकता जब तक उनके पास कोई कारण न हो, या कम से कम एक विकल्प प्रदान न करें। किसी भी मामले में, यह एकमात्र तरीका है जिसे आप वर्तमान में कर सकते हैं, बिना किसी ईवेंट ईवेंट को अपने उदाहरण के अनुसार। यदि वे इसे बदलते हैं तो आपका काम अभी भी काम करेगा, लेकिन मैं उस काम को सहेजने की संभावना को छोड़ दूंगा। –