Una caratteristica molto interessante del framework è l'inferenza dei tipi, cioè la capacità del compilatore di capire quali sono i tipi da usare senza che il programmatore li dichiari esplicitamente. Questa caratteristica è stata notevolmente utilizzata nel framework 3.0, ma è presente anche nel 2.0.
Ad esempio:
class
FooClass
{
public
void Test() {
Foo<int, string>(10, "aaa");
Foo(10, "aaa");
Foo("bbb", 10);
}
void Foo<I, J>(I parA, J parB) {
Console.WriteLine("First method");
...