.Net 3.5 VS 2008 ошибка "недопустимый токен"

Я пытаюсь скомпилировать 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 ответ

Решение

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

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

Другие вопросы по тегам