OK, here’s another little reminder about VB.Net syntax.
Take the following C# fragment:
if (instance is TestDomainObject)
{
var testInstance = instance as TestDomainObject;
_data.Remove(testInstance.Id);
}
In VB.Net the equivalent is:
If (TypeOf instance Is TestDomainObject) Then
Dim testInstance = TryCast(instance, TestDomainObject)
_data.Remove(testInstance.Id)
End If
Note the use of the TypeOf keyword.
Note also that casting in VB.Net takes a bit of getting used to. There are essentially 3 ways to perform casting:
| Keyword | Data types | Argument relationship | Run-time failure |
|---|---|---|---|
|
CType Function |
Any data types |
Widening or narrowing conversion must be defined between the two data types |
Throws InvalidCastException |
|
DirectCast |
Any data types |
One type must inherit from or implement the other type |
Throws InvalidCastException |
|
TryCast |
Reference types only |
One type must inherit from or implement the other type |
Returns Nothing (Visual Basic) |
See DirectCast Operator (Visual Basic) to get started. You might also like to checkout Convert.ChangeType Method.