C # é equivalente ao DirectCast do VB.NET?

O C # tem um equivalente ao DirectCast do VB.NET?

Estou ciente de que possui () moldes e a palavra-chave 'as', mas eles estão alinhados com CType e TryCast.

Para ficar claro, essas palavras-chave fazem o seguinte;

CType / () lança: Se já é do tipo correto, faça a conversão, caso contrário, procure um conversor de tipo e chame-o. Se nenhum conversor de tipo for encontrado, lance uma InvalidCastException.

TryCast / "como" palavra-chave: Se for do tipo correto, faça a conversão; caso contrário, retorne nulo.

DirectCast: Se for do tipo correto, faça a conversão, caso contrário, lance uma InvalidCastException.

Depois que eu expliquei o exposto acima, algumas pessoas ainda responderam que () é equivalente, portanto, expandirei ainda mais por que isso não é verdade.

O DirectCast permite apenas conversões de restrição ou ampliação na árvore de herança. Ele não suporta conversões em diferentes ramos, como (), ou seja:

Isso compila e executa:

//This code uses a type converter to go across an inheritance tree
double d = 10;
int i = (int)d;

VB.net - isso não compila

'Direct cast can only go up or down a branch, never across to a different one.
Dim d As Double = 10
Dim i As Integer = DirectCast(d, Integer)

O equivalente no VB.NET ao meu código C # é CType:

'This compiles and runs
Dim d As Double = 10
Dim i As Integer = CType(d, Integer)

questionAnswers(10)

yourAnswerToTheQuestion