There is a writeup in the ASP.NET forums about this. Without that line, you might get compiler warnings that look something like "__o is not declared". This work around prevents those from ever appearing.
From the asp.net forums...
ASP.NET Forums
We have finally obtained reliable
repro and identified the underlying
issue. A trivial repro looks like
this:
<% if (true) { %>
<%=1%>
<% } %>
<%=2%>
In order to provide intellisense in <%= %> blocks at
design time, ASP.NET generates
assignment to a temporary __o variable
and language (VB or C#) then provide
the intellisense for the variable.
That is done when page compiler sees
the first <%= ... %> block. But here,
the block is inside the if, so after
the if closes, the variable goes out
of scope. We end up generating
something like this:
if (true) {
object @__o;
@__o = 1;
}
@__o = 2;
The workaround is to add a dummy
expression early in the page. E.g.
<%="" %>. This will not render
anything, and it will make sure that
__o is declared top level in the Render method, before any potential
‘if’ (or other scoping) statement.