Na nova versão da linguagem Visual Basic .NET foi introduzida o “novo” operador chamado TryCast, que até o momento, era somente visto em códigos do .NET Framework que eram decompilados pelo Reflector e não podia ser utilizado em aplicações que nós mesmo desenvolvemos.
Ela é usada como utilizamos atualmente os operadores CType ou o DirectCast, ou seja, passamos o objeto que queremos converter e o tipo para qual este deve ser convertido. Mas a diferença é que o TryCast somente trabalha com References Types, como Classes e Interfaces. E também vale lembrar que ele requer herança ou implementação entre os dois tipos.
Ao contrário do CType e DirectCast, que atiram uma InvalidCastException quando não é possível a conversão, o TryCast retorna Nothing. Abaixo, um exemplo do uso deste novo operador:
Public Sub Teste(ByVal obj As Object)
Dim colecao As IList = TryCast(obj, IList)
If Not (colecao Is Nothing) Then
Console.WriteLine(“Coleção válida.”)
End If
End Sub
Isso já é suportado no C#, onde lá é conhecido como operador “as“.