Подтвердить что ты не робот

Почему класс String не реализует IEnumerable <char> в переносной библиотеке?

Я создал проект PCL, который нацелен на .NET Framework 4 и Silverlight 5 (я использую расширение для Visual Studio 2010, а не портативный шаблон проекта из Visual Studio 2012, если это имеет значение). Я пытаюсь изменить строку с помощью метода расширения System.Linq.Enumerable.Reverse<TSource>(), но это не сработает, потому что компилятор считает, что System.String не реализует IEnumerable<char>.

4b9b3361

Ответ 1

Библиотеки портативных классов должны ограничиваться классами и методами, доступными на всех целевых платформах, поддерживаемых promises. Крупнейшим создателем проблем здесь является WinRT, у CLR есть языковая проекция, которая отображает типы WinRT для управляемых типов. Методы System.String, не поддерживаемые проекцией, описаны в этом ответе. GetEnumerator() является одним из них.