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

Почему существуют следующие отличия в реализации Silverlight между версиями MAC и Window

Я просматривал список различий между реализацией Silverlight для Windows и реализацией MAC. Который можно найти ЗДЕСЬ.

Хотя некоторые из различий, очевидно, связаны с различиями в платформе и т.д. Есть некоторые, что я просто задаюсь вопросом, почему они будут разными. Если у кого-то есть какие-то мысли или фактическая конкретная информация об этом, мне было бы интересно услышать ваш вход.

Вот несколько вещей, которые казались странными, особенно последний пункт в моем списке, что и заставило меня опубликовать этот вопрос.

  • Char.ToLower(Char, CultureInfo). На MAC используется текущая культура, а не указанная культура. Странно, поскольку MAC предположительно поддерживает несколько культур (я не владею MAC или много знаю об этом, так что это предположение с моей стороны).
  • Десятичный/Одиночный/UInt16/UInt32/UInt64. В документе указано, что указанные типы не поддерживаются, является ли это то, что ОС не поддерживает их, поэтому они "эмулируются" (я использую термин "эмулируется" свободно, так как базовый процессор определенно поддерживает их, исключая, конечно, Decimal).
  • Double/Single * Infinity properties. Почему они возвращают разные строки на разных платформах. Теперь я не говорю, что люди должны использовать строковое представление для сравнений, это было бы глупо, но почему они делают разные, разве это не просто поиск проблем с переносимостью, где им не нужно существовать? Или это более специфическая проблема с пользовательской практикой на платформе, пользователи MAC ожидают увидеть символ бесконечности, а не слова?
  • Конструктор CultureInfo. В Windows, если недопустимая строка культуры передается конструктору, генерируется исключение ArgumentException, на MAC инициализируется CultureInfo как текущая культура, и исключение не создается.

Теперь ни один из этих факторов не является серьезным различием, учитывая, что ваш код написан в соответствии с общепринятыми передовыми методами. Однако я задаюсь вопросом, почему я считаю, возможно, неправильным, быть частью контракта на поведение, хотя и не явным в .NET, как то, что я могу ожидать при передаче недопустимой строки культуры в конструктор, не обеспечивает согласованного поведения в платформы, которые кажутся довольно произвольными и снова просто ищут проблемы с переносимостью, где нет веских оснований или есть?

4b9b3361