Why does this static factory method involving implied generic types, work?
Posted
by Cheeso
on Stack Overflow
See other posts from Stack Overflow
or by Cheeso
Published on 2009-12-02T13:34:54Z
Indexed on
2010/05/12
8:34 UTC
Read the original article
Hit count: 149
Consider
public class Tuple<T1, T2>
{
public Tuple(T1 v1, T2 v2)
{
V1 = v1;
V2 = v2;
}
public T1 V1 { get; set; }
public T2 V2 { get; set; }
}
public static class Tuple
{
// MAGIC!!
public static Tuple<T1, T2> New<T1, T2>(T1 v1, T2 v2)
{
return new Tuple<T1, T2>(v1, v2);
}
}
Why does the part labeled "MAGIC" in the above work? It allows syntax like
Tuple.New(1, "2")
instead of new Tuple<int, string>(1, "2")
, but ... how and why?
Why do I not need Tuple.New<int,string>(1, "2")
??
© Stack Overflow or respective owner