Почему вывод типа не поддерживается для конструкторов так, как это делается для общих методов?
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>?
Хотя вы можете обойти это с помощью класса factory,
public class MyTypeFactory
{
public static MyType<T> Create<T>(T value)
{
return new MyType<T>(value);
}
}
var myObj = MyTypeFactory.Create(42);
Существует ли практическая или философская причина, почему конструктор не может поддерживать вывод типа?