Это похоже на ошибку в логике разрешения перегрузки в C #. Комбинация вызова конструктора универсального типа и передачи связанного универсального шаблона представляется ключевой. Удаление любого из них, кажется, решает проблему. Например, вы можете вызвать упомянутое выражение, явно приведя myList
к ICollection<DateTime>
(хотя это не исправляет все случаи, которые я пробовал)
Вот пример программы, которую я написал, чтобы сузить проблему
class C<T> {
public C(ICollection<T> collection) {
}
}
static void Example<T>(ICollection<T> collection) {
}
На этом же перерыве вы можете попробовать следующие оценки
Example(myList)
- работает без ошибок
new C<DateTime>(myList)
- Сбой с той же ошибкой
На данный момент, я думаю, вы должны сообщить об ошибке на Connect . Это определенно ошибка (подобный код прекрасно работает в VB.Net)