Páginas

quarta-feira, 14 de setembro de 2011

"".GetType() vs. typeof(string)

No ASP.NET Webforms é possível incluir um javascript para ser renderizado na tela através do método RegisterStartupScript a partir da propriedade ClientScript do objeto Page. Este método então irá, na hora de "cuspir" o HTML, incluir o script de forma com que ele seja executado assim que a página seja carregada no browser.

Os dois primeiros parâmetros são um Type e uma string, representando um tipo qualquer e uma chave que são usados para identificar exclusivamente um script, de forma a identificar a duplicidade. Para o primeiro parâmetro, podemos passar o próprio tipo da página onde este script será usado. Mais detalhes em http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx.

Bom, no exemplo abaixo, acabou-se usando o tipo como a própria string. Até aí "tudo bem", não vou discutir qual seria o valor correto para passar para este método, mas o que eu fiquei "besta" foi da ocorrência de "".GetType(), de forma a obter uma instância de Type que represente uma string. Poxa,se for para fazer isso, que pelo menos seja passando typeof(string).
Page.ClientScript.RegisterStartupScript("".GetType(), "", "alert('Mensagem qualquer de alerta do sistema!');", true);
Obs. Internamente, no CIL, typeof chama o método Type.GetTypeFromHandle.

[]'s

Nenhum comentário:

Postar um comentário