Dicas de C# – Qual a diferença entre utilizar um cast ou o operador as

Publicado: 11/06/2012 em C#, Dicas
Tags:

Existem três diferenças importantes quando utilizamos o operador as:

1 – O operador as retorna null quando o objeto que você esta tentando converter não é do tipo solicitado, já o cast lança uma exceção.

2 –  O operador as só pode ser utilizado para converter objetos de referencia para objetos de referencia.

3 – O operador as também não permite conversões definidas pelo usuário como conversões implícitas e explicitas, que o cast permite.

Existe de fato duas operações completamente diferentes definidas no IL que gerencia essas duas situações.
Não são apenas “perfumarias de código” escritas em C#.

O operador as é ligeiramente mais rápido nas versões 1.0 e 1.1 do Microsoft CLR comparado ao cast, mesmo em casos onde há conversões invalidas que diminuem severamente a performance devido as exceções.

É isso…

Grande abraço

@pmoraesjr

comentários
  1. Edjolp disse:

    Fico muito grato em se inscrever no teu blog.
    A partilha de conhecimento é um bem precioso,
    Porque aprende-se todos os dias e o saber ñ
    ocupa espaço, apenas aumenta o nosso leque
    de conhecimento e nos mantém actulizados!
    Valeu pela tua actualização, dicas e livros…

Deixe um comentário