Мы используем стороннюю dll, которая предоставляет метод, принимающий параметр NetworkStream.Data []:
public void Read(int elementsCount, int timeOutInMs, out Data[] array, out bool timedOut)
Мы используем его в нашем коде, передавая NetworkStream.Data (тип данныхопределяется в указанной библиотеке), и он прекрасно компилируется в Visual Studio 2012.
Однако при компиляции в Visual Studio 2017 это приводит к ошибке приведения:
Ошибка CS1503 Аргумент 4: невозможно преобразовать 'NetworkStream.Data []' в 'Out NetworkStream.Data [*]'
Декомпиляторы, такие как DnSpy, указывают одно и то же во всплывающей подсказке для метода и в ILон показывает, что аргумент равен
[out] valuetype NetworkStream.Data[0...]& data
Что означают эти NetworkStream.Data [*] или NetworkStream.Data [0 ...] и почему происходит сбой приведения в VS 2017?