Почему следующее вызывает ошибку компиляции?
interface IX {}
interface IY {}
class XY : IX, IY {}
void Foo<T>() where T : IX, IY
{
T xy = new XY();
… // ^^^^^^^^
} // error: "Implicit conversion of type 'XY' to 'T' is not possible."
Примечание: Та же ошибка возникнет, если class XY: IX
и где T: IX
. Однако я выбрал более сложный пример, поскольку более простой мог вызвать обходные ответы, например, «Просто измените тип xy
с T
на IX
", что не отвечает , почему это преобразование не выполняется.