istisnası yakalanamıyor. Tamam, bu kodun size tuhaf görüneceğini itiraf ediyorum ve bunun nedeni çünkü garip. Bu, sadece kullanmak istediğim kodu değil, davranışı yeniden üretmenin kodu.Activator.CreateInstance
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();
}
}
olursa olsun yakalamaya çalışın neyi istisna tipi yürütmez catch bloğu içinde kodu (atılan gerçek istisna kadarıyla söyleyebilirim ArgumentException olan). Aslında yürütme, Activator.CreateInstance satırında durur.
Bu yalnızca temsilciler oluşturulurken gerçekleşir mi? Bunun için 'Delegate.CreateDelegate' kullanmanız gerekiyor. –
Muhtemelen delegeler oluşturulduğunda ancak bunun kullanıldığı gerçek kod, oluşturmaya çalıştıkları türden haberdar olmadığında gerçekleşir, şu andaki düzeltme, Temsilci'den devralma türünün bile denemesinin "yasak" olmasıdır. –