这个ASP.NET功能在哪里记录?<%=字符串格式,params object [] args%>

Mic*_*out 18 asp.net compiler-construction parsing response.write server-tags

显然,可以使用ASP.NET Web表单页面和视图中的<%= %>构造(渲染块)编写格式化输出.

<%= "{0} is {1}", "Foo", 42 %>
Run Code Online (Sandbox Code Playgroud)

这将使"Foo为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 );
Run Code Online (Sandbox Code Playgroud)

这种行为记录在哪里吗?

guy*_*mid -1

这很接近并且可能相关http://msdn.microsoft.com/en-us/library/586y06yf.aspx但这并不能解释为什么 <%= 这样做......