.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
,