Что такое специальная разметка поставщика [дубликат]

Другим сценарием является то, что вы нанесли нулевой объект в тип значения . Например, код ниже:

object o = null;
DateTime d = (DateTime)o;

Он выкинет NullReferenceException в роли. В приведенном выше примере это кажется совершенно очевидным, но это может произойти в более «поздних связующих» сложных сценариях, где нулевой объект был возвращен из некоторого кода, которого вы не являетесь, и приведение, например, генерируется некоторой автоматической системой.

Одним из примеров этого является этот простой фрагмент привязки ASP.NET с элементом управления календарем:

" />

Здесь SelectedDate на самом деле является свойством - типа DateTime - типа Calendar Web Control, и привязка может отлично вернуть что-то null. Неявный генератор ASP.NET создаст кусок кода, который будет эквивалентен приведенному выше методу. И это поднимет NullReferenceException, что довольно сложно определить, потому что он лежит в сгенерированном ASP.NET коде, который компилирует отлично ...

58
задан BoltClock 12 March 2012 в 08:39
поделиться

2 ответа

Это связано с тем, что функции были реализованы поставщиками до того, как спецификация достигла конечной стадии выпуска.

Префиксы поставщика гарантируют, что нет столкновений с изменяющимися функциями и т. д.

Первоначально точка префикса поставщика заключалась в том, чтобы позволить разработчикам браузера начать поддерживать экспериментальные объявления CSS.

Предположим, что рабочая группа W3C обсуждает объявление сетки (которое, кстати, не будет таким плохим идея). Давайте также скажем, что некоторые люди создают проект спецификации, но другие не согласны с некоторыми деталями. Как известно, этот процесс может занять много времени.

Давайте также скажем, что Microsoft как эксперимент решает реализовать предложенную сетку. На данный момент Microsoft не может быть уверена, что спецификация не изменится. Поэтому вместо добавления сетки в свой CSS она добавляет -ms-grid.

Тип префикса поставщика указывает, что «это интерпретация Microsoft текущего предложения». Таким образом, если окончательное определение сетки отличается, Microsoft может добавить новую сетку свойств CSS без разбивки страниц, которые зависят от -ms-grid

Source .

52
ответ дан alex 23 August 2018 в 23:57
поделиться

ОБНОВЛЕНИЕ ЗА ГОД 2016

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

Как упоминалось в этот глоссарий о представлении Mozilla в Vendor Prefix на May 3, 2016,

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

Например, всего несколько лет назад, чтобы установите округленный угол на поле, которое вам нужно было написать:

-moz-border-radius: 10px 5px;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 5px;
border-radius: 10px 5px;

Но теперь, когда браузеры полностью поддерживают эту функцию, вам действительно нужна только стандартизованная версия:

border-radius: 10px 5px;
10
ответ дан Raman Sahasi 23 August 2018 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: