Когда я должен использовать # и = в средствах управления ASP.NET?

Конечно. Вам нужен контекст, который разрешает расширение пакета - простой является скоординированным списком инициализаторов, который также имеет преимущество для оценки слева направо:

using expander = int[];
(void) expander { 0, ((void) As::id(), 0)... };
  • ... расширяет узор слева от него; в этом случае шаблон является выражением ((void) As::id(), 0).
  • , в выражении является оператором запятой, который оценивает первый операнд, отбрасывает результат, затем оценивает второй операнд и возвращает результат.
  • Функция (void), установленная на As::id(), существует для защиты от перегрузки operator, и может быть опущена, если вы уверены, что ни один из вызовов As::id() не вернет то, что перегружает запятую.
  • 0 в правой части оператора запятой состоит в том, что expander представляет собой массив из int s, поэтому все выражение (которое используется для инициализации элемента массива) должно оцените int.
  • Первый 0 гарантирует, что мы не пытаемся создать недопустимый массив 0-размера, когда As является пустым пакетом.

Demo .


В C ++ 17 (если повезет), все тело C::id можно заменить на двоичным сглаживанием : (A::id(), ... , (void) As::id()); Демонстрация .

27
задан John Sheehan 30 October 2008 в 17:53
поделиться

3 ответа

< % = %> является эквивалентом выполнения Ответа. Запишите ("") везде, куда Вы помещаете его.

< % # %> для Привязки данных и может только использоваться, где привязка данных поддерживается (можно использовать их на уровне страницы вне управления при вызове Page. DataBind () в Вашем codebehind)

Обзор

Выражений привязки данных
24
ответ дан John Sheehan 14 October 2019 в 12:49
поделиться

Существует несколько различного 'молозива':

  • <%@ - директива
  • <%$ страницы - доступ ресурса
  • <%= - явный вывод к странице
  • <%# - привязке данных
  • <%-- - серверный блок комментария

, Также новый в ASP.Net 4:

  • <%: - выписывает к странице, но с HTML закодировал

Также новый в ASP.Net 4.5:

  • <%#: - HTML закодировал привязку данных
43
ответ дан Brian 14 October 2019 в 12:49
поделиться

Вот большое сообщение в блоге Dan Crevier , который идет через тестовое приложение, которое он записал для показа различий.

В сущности:

  • < % = выражения оценен во время рендеринга
  • < % # выражения оценен в DataBind () время и не оценен вообще, если DataBind () не называют.
  • < % # выражения может использоваться в качестве свойств в средствах управления серверной стороны. < % = выражения не может.
9
ответ дан Guy Starbuck 14 October 2019 в 12:49
поделиться
Другие вопросы по тегам:

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