C # эквивалентно VC.NET DirectCast?

Есть ли в C # эквивалент DirectCast VB.NET?

Я знаю, что он имеет () приведения и ключевое слово «как», но они соответствуют CType и TryCast.

Чтобы было понятно, эти ключевые слова делают следующее;

CType / () приведениеЕсли это уже правильный тип, приведите его, в противном случае ищите конвертер типов и вызывайте его. Если преобразователь типов не найден, создайте исключение InvalidCastException.

TryCast / "как" ключевое слово: Если это правильный тип, приведите его, иначе верните ноль.

DirectCast: Если это правильный тип, приведите его, в противном случае создайте исключение InvalidCastException.

После того, как я изложил вышеизложенное, некоторые люди все еще ответили, что () эквивалентно, поэтому я более подробно остановлюсь на том, почему это не так.

DirectCast допускает только сужающие или расширяющие преобразования в дереве наследования. Он не поддерживает преобразования в разных ветвях, как (), т.е.

C # - это компилирует и запускает:

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

VB.NET - это не скомпилировано

'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)

В VB.NET мой код на C # эквивалентен CType:

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

Ответы на вопрос(10)

Ваш ответ на вопрос