The clue may be that both... t.Test<IA, B<IA>>(); t.Test<IA, IB<IA>>();
and compile, thus there are multiple solutions....even so it should be asking me to clarify by passing type parameters, not claiming no such parameters exist. > -----Original Message----- > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > [EMAIL PROTECTED] On Behalf Of Nicholls, Mark > Sent: 28 February 2008 15:39 > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > Subject: Re: [ADVANCED-DOTNET] extensions methods and type inference.... > > Ok here's a simple example.... > > > public interface IA > { > } > > public interface IB<T> > where T : IA > { > } > > public class B<T> : IB<T> > where T : IA > { > } > > > public static class Extension > { > static public void Test<A,B>(this B b) > where B : IB<A> > where A : IA > { > } > } > > > static void Main() > { > B<IA> t = new B<IA>(); > t.Test(); // #1 > t.Test<IA, B<IA>>(); // #2 > } > > #2 compiles... > #1 complains. > > "Error 1 > 'WindowsFormsApplication3.B<WindowsFormsApplication3.IA>' does not > contain a definition for 'Test' and no extension method 'Test' accepting > a first argument of type > 'WindowsFormsApplication3.B<WindowsFormsApplication3.IA>' could be found > (are you missing a using directive or an assembly reference?) > C:\Documents and Settings\nichom\My Documents\Visual Studio > 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Program. > cs 17 13 WindowsFormsApplication3" > > Yet clearly #2 proves the error to be incorrect...there is a solution... > > > > > > > > -----Original Message----- > > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > > [EMAIL PROTECTED] On Behalf Of Per Bolmstedt > > Sent: 28 February 2008 13:55 > > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > > Subject: Re: [ADVANCED-DOTNET] extensions methods and type > inference.... > > > > On Thu, 28 Feb 2008 08:50:19 -0500, Mark Nicholls > > <[EMAIL PROTECTED]> > > wrote: > > > > > but I can actually explicitly define the types e.g. > > > x.BLA<int,object>(foo,bar); > > > and the compiler will happily accept it...and run it. > > > > Surely x is an instance here, not a type? Could you post actual code? > > > > =================================== > > This list is hosted by DevelopMentor(r) http://www.develop.com > > > > View archives and manage your subscription(s) at > > http://discuss.develop.com > > > > CONFIDENTIALITY NOTICE > > This e-mail (and any attached files) is confidential and protected by > copyright (and other intellectual property rights). If you are not the > intended recipient please e-mail the sender and then delete the email and > any attached files immediately. Any further use or dissemination is > prohibited. > > While MTV Networks Europe has taken steps to ensure that this email and > any attachments are virus free, it is your responsibility to ensure that > this message and any attachments are virus free and do not affect your > systems / data. > > Communicating by email is not 100% secure and carries risks such as delay, > data corruption, non-delivery, wrongful interception and unauthorised > amendment. If you communicate with us by e-mail, you acknowledge and > assume these risks, and you agree to take appropriate measures to minimise > these risks when e-mailing us. > > MTV Networks International, MTV Networks UK & Ireland, Greenhouse, > Nickelodeon Viacom Consumer Products, VBSi, Viacom Brand Solutions > International and Comedy Central are all trading names of MTV Networks > Europe. MTV Networks Europe is a partnership between MTV Networks Europe > Inc. and Viacom Networks Europe Inc. Address for service in Great Britain > is UK House, 180 Oxford Street, London W1D 1DS, UK. > > =================================== > This list is hosted by DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com CONFIDENTIALITY NOTICE This e-mail (and any attached files) is confidential and protected by copyright (and other intellectual property rights). If you are not the intended recipient please e-mail the sender and then delete the email and any attached files immediately. Any further use or dissemination is prohibited. While MTV Networks Europe has taken steps to ensure that this email and any attachments are virus free, it is your responsibility to ensure that this message and any attachments are virus free and do not affect your systems / data. Communicating by email is not 100% secure and carries risks such as delay, data corruption, non-delivery, wrongful interception and unauthorised amendment. If you communicate with us by e-mail, you acknowledge and assume these risks, and you agree to take appropriate measures to minimise these risks when e-mailing us. MTV Networks International, MTV Networks UK & Ireland, Greenhouse, Nickelodeon Viacom Consumer Products, VBSi, Viacom Brand Solutions International and Comedy Central are all trading names of MTV Networks Europe. MTV Networks Europe is a partnership between MTV Networks Europe Inc. and Viacom Networks Europe Inc. Address for service in Great Britain is UK House, 180 Oxford Street, London W1D 1DS, UK. =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com