ठीक है, मैं मानता हूं कि यह कोड सिर्फ आपके लिए अजीब लगेगा, और ऐसा इसलिए है क्योंकि यह अजीब है। व्यवहार का पुनरुत्पादन करने के लिए यह सिर्फ कोड है, कोड नहीं जिसे मैं उपयोग करना चाहता हूं।एक्टिवेटर से अपवाद पकड़ने में असमर्थ। क्रिएटइंस्टेंस
class Program
{
static void Main(string[] args)
{
try
{
Activator.CreateInstance(typeof(Func<int>), new object[] { new object(), IntPtr.Zero });
}
catch
{
Console.WriteLine("This won't print!");
}
Console.Write("Actually this will not print either!");
Console.ReadLine();
}
}
कोई फर्क नहीं पड़ता अपवाद प्रकार मैं पकड़ने की कोशिश कैच ब्लॉक निष्पादित नहीं होगा अंदर कोड (वास्तविक अपवाद उत्पन्न एक ArgumentException जहाँ तक मैं बता सकता है)। दरअसल निष्पादन केवल एक्टिवेटर पर ही रुक जाएगा। क्रिएट इंस्टेंस-लाइन।
क्या यह केवल प्रतिनिधियों का निर्माण करते समय होता है? इसके लिए आपको 'Delegate.CreateDelegate' का उपयोग करना होगा। –
यह शायद तब होता है जब प्रतिनिधियों का निर्माण होता है लेकिन वास्तविक कोड जहां इसका उपयोग किया जाता है, इस बात से अवगत नहीं है कि यह किस प्रकार का निर्माण करने की कोशिश कर रहा है, अभी ठीक है कि यह तय करने के लिए "वर्जित" है कि यह तरीका Delegate से प्राप्त होता है या नहीं। –