Sébastien Lorion <[EMAIL PROTECTED]> wrote: > Funny, I get exactly the inverse behavior both in debug and release ... ?!
> class MyReferenceType Your results appear to be anomalous because typeof(T) where T is a non-public type invokes more security checking. I get the following results: Activator.Create(typeof(Public)) : 0.147 sec with 1000000 reps Activator.Create<Public>() : 1.035 sec with 1000000 reps Activator.Create(typeof(Private)) : 1.981 sec with 1000000 reps Activator.Create<Private>() : 1.029 sec with 1000000 reps ... using this test program: ---8<--- using System; using System.Diagnostics; public class Public { public string field1; } class Private { public string field1; } public class App { delegate void Proc(); const int Repetitions = 1000000; static void Time(string label, Proc proc) { Stopwatch w = Stopwatch.StartNew(); for (int i = 0; i < Repetitions; ++i) proc(); Console.WriteLine("{0,-35}: {1,6:f3} sec with {2} reps", label, w.ElapsedTicks / (double) Stopwatch.Frequency, Repetitions); } static void Main() { Time("Activator.Create(typeof(Public))", delegate { Public item = (Public) Activator.CreateInstance(typeof(Public)); }); Time("Activator.Create<Public>()", delegate { Public item = Activator.CreateInstance<Public>(); }); Time("Activator.Create(typeof(Private))", delegate { Private item = (Private) Activator.CreateInstance(typeof(Private)); }); Time("Activator.Create<Private>()", delegate { Private item = Activator.CreateInstance<Private>(); }); } } --->8--- -- Barry -- http://barrkel.blogspot.com/ =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com