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: [email protected]
> 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: [email protected]
> > 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