object value; Parser.TryParse(typeof(int), "1", out value);
is a valid call to the second (non-generic method). It would seem to me that it is then inferring T as object here ... return TryParse(input, out value); because if public static bool TryParse<T>(string input, out T value) value is an object ... (and its a T) T must be an object. What were you expecting to be the error and why? Cheers, Greg On Fri, Apr 11, 2008 at 5:06 PM, Sébastien Lorion <[EMAIL PROTECTED]> wrote: > The following program outputs: > > in Parse, type='System.Int32' > in Parse<T>, T='System.Object' > > Is this behavior intended and if yes, why ? I would expect a compile error. > > > > using System; > > namespace ConsoleApplication1 > { > class Program > { > static void Main(string[] args) > { > object value; > Parser.TryParse(typeof(int), "1", out value); > > Console.ReadLine(); > } > } > > class Parser > { > public static bool TryParse<T>(string input, out T value) > { > Console.WriteLine("in Parse<T>, T='{0}'", typeof(T)); > > value = default(T); > return true; > } > > public static bool TryParse(Type type, string input, out object value) > { > Console.WriteLine("in Parse, type='{0}'", type); > > return TryParse(input, out value); > } > } > } > > -- > Sébastien > www.sebastienlorion.com > > =================================== > This list is hosted by DevelopMentor(R) http://www.develop.com > > View archives and manage your subscription(s) at http://discuss.develop.com > -- Studying for the Turing test =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com