По-видимому, можно писать форматированный вывод, используя конструкцию <%= %>
(блок рендеринга) на страницах и представлениях веб-форм ASP.NET.
<%= "{0} is {1}", "Foo", 42 %>
Это сделает "Foo is 42". Насколько я знаю, парсер ASP.NET переводит <%= %>
в вызов HttpResponse.Write(string)
. Очевидно, что в приведенном выше коде нет взаимно однозначного перевода, потому что количество аргументов не соответствует (если ,
в вышеприведенном выражении разделяет аргументы).
Теперь я увидел, что класс TextWriter
имеет Write(string, object[])
.
Я проверил вывод из синтаксического анализатора и действительно вызывает метод TextWriter
, который принимает аргумент params object[]
для форматирования:
private void @__Renderform1(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer) {
// ...
@__w.Write( "{0} is {1}", "Foo", 42 );
Является ли это поведение документированным где угодно?