Ответ 1
Попробуйте выполнить
if TypeOf x Is IFoo Then
...
Мне нужно проверить, реализует ли данный объект интерфейс. В С# я просто сказал бы:
if (x is IFoo) { }
Использует TryCast()
, а затем лучше проверяет Nothing
?
Попробуйте выполнить
if TypeOf x Is IFoo Then
...
Вот так:
If TypeOf x Is IFoo Then
Используйте это онлайн-решение для конвертации С# в VB.NET, а также ряд других кодовых преобразований.
Прямой перевод:
If TypeOf x Is IFoo Then
...
End If
Но (чтобы ответить на ваш второй вопрос), если исходный код был лучше написан как
var y = x as IFoo;
if (y != null)
{
... something referencing y rather than (IFoo)x ...
}
Тогда да,
Dim y = TryCast(x, IFoo)
If y IsNot Nothing Then
... something referencing y rather than CType or DirectCast (x, IFoo)
End If
лучше.
http://www.developerfusion.com/tools/convert/csharp-to-vb/ также является отличным инструментом преобразования.