Pourquoi l'inférence de type n'est-elle pas prise en charge pour les constructeurs comme pour les méthodes génériques?
public class MyType<T>
{
private readonly T field;
public MyType(T value) { field = value; }
}
var obj = new MyType(42); // why can't type inference work out that I want a MyType<int>?
Bien que vous puissiez contourner ce problème avec une classe d’usine,
public class MyTypeFactory
{
public static MyType<T> Create<T>(T value)
{
return new MyType<T>(value);
}
}
var myObj = MyTypeFactory.Create(42);
Y a-t-il une raison pratique ou philosophique pour laquelle le constructeur ne supporte pas l'inférence de type?