.Net 3.5 VS 2008 ошибка «Недопустимый токен» - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь скомпилировать SharpMap для .Net 3.5, я перебрал большинство ошибок, и единственная ошибка, которую я получаю на данный момент:

Недопустимый токен 'out' в объявлении члена класса, структуры или интерфейса

Недопустимый токен '>' в объявлении члена класса, структуры или интерфейса

Тип ожидается

Ошибка находится в начале (строка 36) этого файла . Вот код (ошибка в первой строке).

public interface ISpatialIndexItem<out TOid>
{
    /// <summary>
    /// Gets the object's identifier
    /// </summary>
    TOid ID { get; }

    /// <summary>
    /// Gets the spatial extent of the object
    /// </summary>
    Envelope Box { get; }
}

Кроме того, мне не удалось выяснить, что такое TOid и из какой он библиотеки. Я использую VS 2008.Net 3.5 и не могу выполнить обновление из-за особенностей проекта, над которым я работаю.

1 Ответ

0 голосов
/ 29 июня 2018

Ковариантные и контравариантные параметры универсального типа (out) были новыми в .NET 4.0 и C # 4, поэтому вы не можете их использовать. Вы можете просто удалить out, но некоторые другие части могут затем перестать работать: / Это не легко исправить, кроме, возможно, ручного литья.

TOid не приходит откуда-либо; это параметр общего типа. Для сравнения: T в List<T>; это независимо от того, что абонент хочет, чтобы оно было . Если звонящий цитирует ISpatialIndexItem<int>, то TOid равен int.

...