Мне интересно, почему нет .ToShortDateString
в .NET Portable Class Library. У меня есть 2 проекта (Silverlight, и обычная библиотека классов .NET), которые используют один и тот же код, а код включает вызов объекта DateTime
. Чтобы повторно использовать один и тот же код вместо копирования в 2-х местах, я создал переносимую библиотеку классов, чтобы он мог быть импортирован как библиотекой классов Silverlight, так и .NET. К сожалению, не похоже, что .ToShortDateString()
доступен при использовании библиотеки классов. Я могу принять строковый параметр в методе переносной библиотеки классов и передать значение .ToShortDateString()
как из проектов silverlight, так и из библиотеки классов, но мне интересно, почему этот метод не является родным для переносимой библиотеки. Это проблема культуры?Что случилось с .ToShortDateString в .NET Portable Class Library
ответ
Хотя большинство методов/свойств, относящихся к типам, определенным в пространстве имен System, доступно в PCL, есть некоторые исключения, и ToShortDateString является одним из них. Ниже приведен список переносимых членов DateTime. Я не знаю, в чем причина исключения некоторых методов преобразования строк, но я предполагаю, что это связано с избыточностью. Как указывал cadrell0, вы всегда можете добиться того же, используя ToString с параметром.
T:System.DateTime
M:System.DateTime.ToString(System.String)
M:System.DateTime.op_GreaterThan(System.DateTime,System.DateTime)
M:System.DateTime.ParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles)
M:System.DateTime.get_Month
M:System.DateTime.FromFileTimeUtc(System.Int64)
M:System.DateTime.get_Date
M:System.DateTime.get_TimeOfDay
M:System.DateTime.get_Kind
M:System.DateTime.ToUniversalTime
M:System.DateTime.get_Year
M:System.DateTime.op_Subtraction(System.DateTime,System.TimeSpan)
M:System.DateTime.get_Second
M:System.DateTime.get_DayOfWeek
M:System.DateTime.TryParse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,[email protected])
M:System.DateTime.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)
M:System.DateTime.get_Day
P:System.DateTime.Date
M:System.DateTime.op_Addition(System.DateTime,System.TimeSpan)
M:System.DateTime.IsDaylightSavingTime
M:System.DateTime.get_DayOfYear
M:System.DateTime.ToFileTime
M:System.DateTime.Subtract(System.DateTime)
M:System.DateTime.IsLeapYear(System.Int32)
M:System.DateTime.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)
M:System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)
P:System.DateTime.Day
M:System.DateTime.get_Hour
M:System.DateTime.Equals(System.DateTime)
M:System.DateTime.get_UtcNow
M:System.DateTime.get_Today
M:System.DateTime.TryParse(System.String,[email protected])
P:System.DateTime.Kind
M:System.DateTime.System#IComparable#CompareTo(System.Object)
P:System.DateTime.UtcNow
P:System.DateTime.Hour
P:System.DateTime.Millisecond
M:System.DateTime.Parse(System.String)
F:System.DateTime.MinValue
M:System.DateTime.op_GreaterThanOrEqual(System.DateTime,System.DateTime)
M:System.DateTime.#ctor(System.Int64,System.DateTimeKind)
M:System.DateTime.GetHashCode
P:System.DateTime.Year
M:System.DateTime.Add(System.TimeSpan)
M:System.DateTime.Equals(System.DateTime,System.DateTime)
M:System.DateTime.ToString(System.IFormatProvider)
M:System.DateTime.get_Now
P:System.DateTime.Month
M:System.DateTime.DaysInMonth(System.Int32,System.Int32)
M:System.DateTime.AddMinutes(System.Double)
M:System.DateTime.get_Minute
M:System.DateTime.#ctor(System.Int64)
M:System.DateTime.op_LessThanOrEqual(System.DateTime,System.DateTime)
M:System.DateTime.ToString(System.String,System.IFormatProvider)
P:System.DateTime.DayOfYear
M:System.DateTime.AddMilliseconds(System.Double)
P:System.DateTime.Second
P:System.DateTime.DayOfWeek
M:System.DateTime.op_Equality(System.DateTime,System.DateTime)
M:System.DateTime.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)
M:System.DateTime.TryParseExact(System.String,System.String,System.IFormatProvider,System.Globalization.DateTimeStyles,[email protected])
M:System.DateTime.ToFileTimeUtc
P:System.DateTime.Today
M:System.DateTime.op_LessThan(System.DateTime,System.DateTime)
M:System.DateTime.get_Millisecond
M:System.DateTime.op_Subtraction(System.DateTime,System.DateTime)
M:System.DateTime.#ctor(System.Int32,System.Int32,System.Int32)
M:System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider)
M:System.DateTime.AddSeconds(System.Double)
M:System.DateTime.AddMonths(System.Int32)
M:System.DateTime.AddYears(System.Int32)
M:System.DateTime.Parse(System.String,System.IFormatProvider,System.Globalization.DateTimeStyles)
M:System.DateTime.get_Ticks
P:System.DateTime.Ticks
M:System.DateTime.TryParseExact(System.String,System.String[],System.IFormatProvider,System.Globalization.DateTimeStyles,[email protected])
M:System.DateTime.ToLocalTime
M:System.DateTime.op_Inequality(System.DateTime,System.DateTime)
M:System.DateTime.SpecifyKind(System.DateTime,System.DateTimeKind)
M:System.DateTime.AddHours(System.Double)
P:System.DateTime.Minute
M:System.DateTime.Subtract(System.TimeSpan)
M:System.DateTime.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)
F:System.DateTime.MaxValue
M:System.DateTime.ToString
M:System.DateTime.FromFileTime(System.Int64)
P:System.DateTime.TimeOfDay
M:System.DateTime.Compare(System.DateTime,System.DateTime)
M:System.DateTime.CompareTo(System.DateTime)
M:System.DateTime.Parse(System.String,System.IFormatProvider)
M:System.DateTime.AddDays(System.Double)
P:System.DateTime.Now
M:System.DateTime.Equals(System.Object)
M:System.DateTime.AddTicks(System.Int64)
Она была удалена, чтобы ослаблять его использование от того, что мы будем рассматривать «современную» площадь поверхности, которую я намекнуть о здесь (What is .NET Portable Subset (Legacy)?). Это означает, что он не отображает новые платформы (например, приложения Windows Store) и не отображается в портативных библиотеках.
Вы можете имитировать свое поведение, просто передав «d» в DateTime.ToString().
Мы хотели подчеркнуть его использование, потому что это единственный формат даты .NET Framework, который не имеет представления на уровне ОС Windows. Это заставляет его не отражать/не учитывать изменения форматирования, сделанные пользователем. В некоторых организациях и правительствах важно, чтобы эти настройки соблюдались.
Если это был единственный, который был удален, то почему история «ToShortTimeString» была удалена? (И что такое string.Format, который мы должны использовать для его замены?) – BrainSlugs83
- 1. USB-доступ в .NET Portable Class Library
- 2. Portable Class Library vs Class Library
- 3. .NET Portable Class Library [Serializable] Attribute
- 4. Portable Class Library Reflection
- 5. Portable Class Library vs. library project
- 6. Portable Class Library System.Object error
- 7. Entity Framework & Portable Class Library
- 8. StreamReader и Portable Class Library
- 9. Portable Class Library Reflection GetField
- 10. Portable Class Library + XDocument.Load (uri)?
- 11. List.Exists отсутствует в Portable Class Library
- 12. .NET Class Class Library?
- 13. WCF Service Reference Portable Class Library Internal
- 14. Portable Class Library и .NET Framework 4.6.x
- 15. Не могу добавить ссылку на .NET Portable Class Library
- 16. .net Portable Class Library содержит Microsoft.VisualBasic как зависимость
- 17. PCL DomCompiler Portable Class Library output
- 18. C# Portable Class Library Equivalent of System.Diagnostics.StackTrace
- 19. C# Portable Class Library - Как включить System.Data.Linq
- 20. Покрытие кода для C# Portable Class Library
- 21. Portable Class Library и Expression Blend
- 22. Установка псевдонима в .net Portable Subset library
- 23. Файл Resx не работает должным образом в Portable Class Library
- 24. Использование System.Lazy в Windows Phone 7.1/Portable Class Library
- 25. Как сериализовать объект в массив байтов (Portable Class Library)
- 26. Суррогатные типы для сериализации в C# Portable Class Library
- 27. C# portable class library: найти элемент в списке по свойству
- 28. Совместное использование сборок с использованием Portable Class Library с DataAnnotations
- 29. Какая версия Blend поддерживает WPF 4.5, Portable Class Library?
- 30. Visual Studio 2015 build class library portable error
Моя догадка заключается в том, чтобы держать PCL маленьким и потому что вы все еще можете использовать 'ToString (" d ")'. – cadrell0
Благодарим за помощь! – Misha